出售域名 11365.com.cn
有需要请联系 16826375@qq.com
在手机上浏览
在手机上浏览

委托的写法进化

发布日期:2018-11-01

委托是方法的方法,委托和被委托方法有相同的参数和返回值。

//被委托的方法
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/>");

Func 有返回值的委托

Action 无返回值的委托