c#中的委托

1.概念

 C# 中的委托(Delegate)是一种引用类型,类似于 C 或 C++ 中函数的指针。委托(Delegate) 是存有对某个方法的引用的一种引用类型变量。引用可在运行时被改变。

2.语法格式

修饰符 delegate 返回类型 委托名称 (参数列表)

3.与委托类型相匹配的方法必须满足的条件

 1)这二者具有相同的签名,即具有相同的参数数目,并且类型相同,顺序相同,参数的修饰符也相同;

 2)这两者具有相同的返回值类型

4.C# 内置委托

4.1Action 委托

Action 委托用于指向没有返回值的方法。

比如:

1Action action = new Action(Hello); 2 3private void Hello() 4{ 5 Console.WriteLine("Hello"); 6}

Action<T> 委托用于指向没有返回值,有一个T类型的参数 的方法。

比如:

1Action<string> action = new Action<string>(Hello); 2 3private void Hello(string name) 4{ 5 Console.WriteLine("Hello, "+ name); 6}

4.2Func 委托

Func 委托用于指向含有返回值的方法。

Func<TResult> 委托用于指向有TResult类型的返回值,没有参数 的方法。

比如:

1Func<int> func = new Func<int>(GetSum); 2 3private int GetSum() 4{ 5 return 0; 6}

Func<TResult, T1> 委托用于指向有TResult类型的返回值,有一个T1类型的参数 的方法。

比如;

1Func<int, int> func = new Func<int, int>(GetSum); 2 3private int GetSum(int stop) 4{ 5 int sum = 0; 6 for (int i = 1; i <= stop; i++) 7 { 8 sum += i; 9 } 10 return sum; 11}

5.委托的应用

public class TestClass

{
     public int Add(int x,int y)
          return x+y;

}
class Program     

{


public delegate int MyDelegate(int x, int y);  //定义一个委托类型

static void Main(string[] args)

{
TestClass tc = new TestClass();

MyDelegate md = tc.Add;     //创建委托类型的实例md,并绑定到Add方法
int intSum = md(2, 3);     //委托的调用
Console.WriteLine("运算结果是:“+intSum.ToString());
Console.Read();

}

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值