委托_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 委托

委托

 2016/7/14 5:32:26  尾牙衣子  程序员俱乐部  我要评论(0)
  • 摘要:delegate:和枚举类似既可以定义在类里面也可以在namespace下。声明:publicdelegateintEntrust(intx,inty);classMyMath{publicintadd(intx,inty){returnx+y;}publicintsub(intx,inty){returnx-y;}}准备使用:Entrustm=newEntrust(MyMath.add);注:静态方法可以这样用,否则请先创建MyMath的对象多播委托:m+=MyMath.sub;注
  • 标签:

delegate:和枚举类似既可以定义在类里面也可以在namespace下。

声明:public delegate int Entrust(int x, int y);

class="code_img_closed" src="/Upload/Images/2016071405/0015B68B3C38AA5B.gif" alt="" />logs_code_hide('309d63f3-bf4c-47cf-8683-27f64245545c',event)" src="/Upload/Images/2016071405/2B1B950FA3DF188F.gif" alt="" />
 class MyMath
    {
        public int add(int x, int y) { return x + y; }
        public int sub(int x, int y) { return x - y; }
    }
准备

使用:Entrust m =new Entrust(MyMath.add);注:静态方法可以这样用,否则请先创建MyMath的对象

多播委托:m+=MyMath.sub;注:对于有返回值的最好不用多播委托

匿名委托: e += delegate(int x, int y) { return x * y; };

Lambda:e += (x, y) => x / y;注:明天构建

系统预定义的常用泛型委托

Func委托:有多种重载,delegate TResult Func<T1,T2,T3,T4,TResult>——Func<string,int> f = delegate(string x) { return 1; };注:泛型的最后一个参数为返回值类型

Action委托:相对于Func委托无返回值

 

 
  • 相关文章
发表评论
用户名: 匿名