委托三步骤
第一步:定义委托
//第一步:1 声明委托(定义委托)
//对于声明委托的解释如下:
//解释a:函数指针
//解释b:委托就是定义函数的形状(形态)
// 即:返回值类型,参数数量,参数类型
public delegate string delegatCeshi(int x,int y);
第二步:实例化
//第二步:2 实例化委托
delegatCeshi delCeshi = new delegatCeshi(add);
第三步:执行委托
//第三步:3 使用委托
this.Text = delCeshi(10,5).ToString();
参考链接
参考链接1
C#基础教程 delegate 帮你理解委托,知道委托的好处, 不懂委托一定要看下!_哔哩哔哩_bilibili
参考链接2
C# 的委托与事件大致是怎么一回事_哔哩哔哩_bilibili
参考链接3
C#基础教程 简单好用泛型委托Action与Func,7分钟学会,不容错过!_哔哩哔哩_bilibili
测试实例
实例思路
实力执行效果
调用add方法 15
调用jian方法 5
调用 除法 方法 2
调用add方法 103
调用jian方法 97
调用 除法 方法 33
调用add方法 8
调用jian方法 2
示例代码
对应的详细代码如下
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//第一步:1 声明委托(定义委托)
//对于声明委托的解释如下:
//解释a:函数指针
//解释b:委托就是定义函数的形状(形态)
// 即:返回值类型,参数数量,参数类型
public delegate string delegatCeshi(int x,int y);
private void button1_Click(object sender, EventArgs e)
{
//第二步:2 实例化委托
delegatCeshi delCeshi = new delegatCeshi(add);
delCeshi += new delegatCeshi(jian);
delCeshi += new delegatCeshi(chufa);
//第三步:3 使用委托
this.Text = delCeshi(10,5).ToString();
//第二次使用未退哦
button1.Text = delCeshi(100,3).ToString();
//实例化第二个委托对象
delegatCeshi ab = new delegatCeshi(add);
ab += jian; // 可以使用new关键字,不写new是为了简写
richTextBox1.AppendText(ab(5,3).ToString());
}
private string chufa(int a, int b)
{
Debug.WriteLine("调用 除法 方法 " + (a / b));
return (a / b).ToString();
}
private string jian(int m, int n)
{
Debug.WriteLine("调用jian方法 " + (m - n));
return (m - n).ToString();
}
private string add(int u, int t)
{
Debug.WriteLine("调用add方法 "+(u + t));
return (u + t).ToString();
}
}
}
特此记录
anlog
2023年12月22日