码迷,mamicode.com
首页 > 其他好文 > 详细

初识委托,泛型委托,表达式树,Lanbda

时间:2018-07-05 17:25:35      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:invoke   获取   赋值   从表   取出   mpi   lam   微软   ret   

委托

public delegate int CalculatorAdd(int x,int y);    //第一步:首先用delegate定义一个委托

CalculatorAdd cAdd = new CalculatorAdd(Add);   //第三步:用方法来实例化这个委托

int result = cAdd.Invoke(5,6);

public int Add(int x,int y)             //第二步:申明一个方法来对应委托

{

  return  x+y;
}

匿名方法(微软简化委托三步,所以是锦上添花可有可无)

public delegate int CalculatorAdd(int x,int y);    //第一步:首先用delegate定义一个委托

CalculatorAdd cAdd = delegate(int x,int y){return x+y;}  //第二步:用这样的方法delegate(int x,int y){return x+y;},把一个方法赋值给委托

Lambda表达式(不管是匿名方法还是Lambda表达式,完成一个委托的引用都是先定义一个委托,然后用一个方法来实例化一个委托)

public delegate int CalculatorAdd(int x,int y);

CalculatorAdd cAdd = (x,y)=>x+y;

int result = cAdd(5,6);

泛型委托(用Func来简化一个委托的定义,叫泛型委托)

Func<int,int,int> cAdd1 = (int x,int y)=>{return x+y;}

int result = cAdd(5,6);

表达式树(表达式树是存放委托的容器,要用Ladmbda表达式的时候,直接从表达式中获取出来,Compile()就可以直接用了)

Expression<Func<int,int,int>> exp = (x,y)=>x+y;

Func<int,int,int> fun = exp.Compile();

int result = fun(2,3);

 

初识委托,泛型委托,表达式树,Lanbda

标签:invoke   获取   赋值   从表   取出   mpi   lam   微软   ret   

原文地址:https://www.cnblogs.com/HansZimmer/p/9268875.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!