C#重温—委托

委托其实就是将方法作为参数传递。

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;
}

其实委托的使用就分下面三步:

  1. 首先需要定义一个委托
  2. 写一个方法供委托调用
    3.实例化委托,然后调用(Invoke)

什么时候使用委托?
如果代码想要执行操作,但不知道操作细节,一般可以使用委托。比如火车票抢票,我只要委托了云抢票,不要知道细节,最后只要告诉我结果是抢票成功还是失败就行了。

泛型委托Action和Func

  1. Action是无返回值的泛型委托,Action至少0个参数,至多16个参数,无返回值。
Action action = (a, b) => Console.WriteLine(a+b); 
action("hello", 18);
  1. Func是有返回值的泛型委托,Func至少0个参数,至多16个参数,根据返回值泛型返回。必须有返回值,不可void
Func add= (x, y) => x + y;
int result = add(1, 2);

你可能感兴趣的:(C#重温—委托)