C# 委托及各种写法

委托是一个类型安全的对象,它指向程序中另一个以后会被调用的方法(或多个方法)。
1、定义委托类型

[访问修饰符]delegate 返回类型 委托名(形参);

2、声明委托对象

委托名 委托实例名;

3、创建委托对象

委托实例名=new 委托名(某个类的方法)

4、使用委托调用方法

委托实例名(实参)

 委托注意事项:

1、委托和方法必须具有相同的参数。

2、委托可以调用多个方法,即一个委托对象可以维护一个可调用方法的列表而不是单独的一个方法,称为多路广播(多播)。

3、使用+=和-=运算实现方法的增加和减少

public delegate int Call(int num1, int num2);//第一步:定义委托类型
Call objCall;//第二步:声明委托对象
SimpleMath objMath = new SimpleMath(); // Math 类的对象           
objCall = new Call(objMath.Multiply);// 第三步:创建委托对象,将方法与委托关联起来

 Call objCall1 = new Call(objMath.Divide);
 objCall += objCall1;//向委托增加一个方法
 objCall -= objCall1;//向委托减去一个方法// 调用委托实例,先执行objMath.Multiply,然后执行objMath.Divide
 int result = objCall(5, 3);
写法:

1、委托 委托名=new 委托(会调用的方法名); 委托名(参数);

2、委托 委托名 =会调用的方法名; 委托名(参数);

3、匿名方法

委托 委托名=delegate(参数){会调用的方法体};委托名(参数);

4、拉姆达表达式

委托 委托名=((参数1,。。参数n)=>{会调用的方法体});委托名(参数);

5、用Action<T>和Func<T>,第一个无返回值

Func<参数1, 参数2, 返回值> 委托名= ((参数1,参数2) => {带返回值的方法体 });返回值=委托名(参数1,参数2);

出处:

http://www.cnblogs.com/Blackieboy/articles/2203346.html

C# 中,委托Delegate)是一种类型,它封装了对特定方法的引用。它是 .NET 框架中的一个重要概念,用于在不持有对象实例的情况下,处理事件、回调和其他异步操作。简单来说,委托允许我们创建可调用的对象,这些对象可以代表任意类型的可调用的方法。 **定义**: 委托的定义类似于接口,但它的成员是方法,而不是属性。声明委托时,你需要指定委托所能引用的方法的签名(参数列表和返回类型)。例如,以下是一个委托声明,它表示能够接受一个字符串参数并返回 void 的方法: ```csharp public delegate void StringCallback(string message); ``` **使用**: 1. **声明**:首先声明一个委托变量,分配给它实际的方法或一个已经存在的委托实例。 ```csharp StringCallback myCallback = Console.WriteLine; ``` 2. **绑定**:可以通过赋值将方法绑定到委托,这被称为委托的“委托给”。 ```csharp myCallback = MyMethod; // 假设 MyMethod 是一个接受 string 参数并打印的消息方法 ``` 3. **调用**:就像调用普通方法一样,可以直接通过委托调用绑定的方法。 ```csharp myCallback("Hello, World!"); // 输出 "Hello, World!" ``` 4. **事件处理**:委托在事件处理中广泛应用,如 `EventArgs` 类型的事件。订阅者注册一个方法到事件上,当事件被触发时,这个方法会被自动调用。 ```csharp button.Click += (sender, e) => Console.WriteLine($"Button clicked: {e.ButtonText}"); ``` 5. **匿名方法和 Lambda 表达式**:你可以直接在声明委托时提供匿名方法或 Lambda 表达式,这种写法简洁明了。 ```csharp myCallback = text => Console.WriteLine(text.ToUpper()); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值