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<string, int> action = (a, b) => Console.WriteLine(a+b); 
action("hello", 18);
  1. Func是有返回值的泛型委托,Func至少0个参数,至多16个参数,根据返回值泛型返回。必须有返回值,不可void
Func<int, int, int> add= (x, y) => x + y;
int result = add(1, 2);
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容