搜索

.net 委托的进化史

总的来说,微软的东西就是能偷懒就尽量偷懒!能少写代码就尽量少写!委托的进化就是一个很好的例子!
 
声明一个委托
public delegate int CalculateAdd(int x, int y);
 
被委托的方法
public int Add(int x, int y)
{
    return x + y;
 
//1,原生态的委托
CalculateAdd ca = new CalculateAdd(Add);
Response.Write("原生态的委托:" + ca(5, 6) + "<br/>");
 
//2.把方法体赋给委托
CalculateAdd ca2 = delegate(int x, int y) { return x + y; };
Response.Write("把方法体赋给委托:" + ca2(5, 6) + "<br/>");
 
//3.使用定义好的Func
Func<int, int, int> add = new Func<int, int, int>(delegate(int x, int y) { return x + y; });
Response.Write("使用定义好的Func:" + add(5, 6) + "<br/>");
 
//4.简化Func
Func<int, int, int> add2 = delegate(int x, int y) { return x + y; };
Response.Write("简化Func:" + add2(5, 6) + "<br/>");
 
//5.lamuda表达式
Func<int, int, int> add3 = (int x, int y) => { return x + y; };
Response.Write("lamuda表达式:" + add3(5, 6) + "<br/>");
 
//6.lamuda简化
Func<int, int, int> add4 = (x, y) => { return x + y; };
Response.Write("lamuda简化:" + add4(5, 6) + "<br/>");
 
更新时间:2017-04-25 09:26:33