委托其实就是将方法作为参数传递。
public delegate string MyDelegate(string name);//①
static void Main(string[] args)
{
MyDelegate d1 = new MyDelegate(Add);//③
string str = string.Empty;
if (d1 != null)
str = d1.Invoke("Curry");
Console.WriteLine(str);
Console.ReadKey();
}
//②
public static string Add(string name)
{
return "hello," + name;
}
其实委托的使用就分下面三步:
- 首先需要定义一个委托
- 写一个方法供委托调用
3.实例化委托,然后调用(Invoke)
什么时候使用委托?
如果代码想要执行操作,但不知道操作细节,一般可以使用委托。比如火车票抢票,我只要委托了云抢票,不要知道细节,最后只要告诉我结果是抢票成功还是失败就行了。
泛型委托Action和Func
- Action是无返回值的泛型委托,Action至少0个参数,至多16个参数,无返回值。
Action<string, int> action = (a, b) => Console.WriteLine(a+b);
action("hello", 18);
- Func是有返回值的泛型委托,Func至少0个参数,至多16个参数,根据返回值泛型返回。必须有返回值,不可void
Func<int, int, int> add= (x, y) => x + y;
int result = add(1, 2);
网友评论