奔腾不止
此后如竟没有炬火,我便是唯一的光......

委托:对方法的封装

public delegate void Caculate(int a ,int b); --公开的委托,返回类型为void的Caculate(委托名:定义方法类型)的方法,且接受2个int参数;

public void Add(int a,int b)

{

   a+=b;

}

Caculate add=Add;

add(2,3);

特点:

1,委托是一种特殊的类型,代表着对方法的引用

2,委托变量可以像方法一样使用

3,委托也需要像类(位置平级)/方法(参数与返回值)一样设置

匿名方法与Lambda:

public delegate int Caculate(int a,int b);

//去掉delegate,并在参数后加=>,=>a+b表示:=>{return a+b}

Caculate methoud=delegate(int a,int b)=> a+b;   --方法体内只有一行代码,才能简写,否则=>{代码内容全写};

methoud(2,3);

Lambda委托定义:

//有返回值和参数:

Func<int,int> methoud=(int a)=>a+=3;   --Func<int,int(只有最后一个参数为返回值类型,其余为输入参数类型)>

methoud(2);                --运行结果为5;

//没有返回值,也没有参数

Action action=()=>Consol.WriteLine("今天晴天");   --就算没有输入参数,也要空的括号;

action;                      --没有返回值,所以显示System.Action

 

posted on 2020-09-27 18:08  奔腾不止  阅读(419)  评论(0编辑  收藏  举报