委托是一个类,它定义了方法的类型,使得可以将该方法当作另一个方法的参数来进行传递。
委托声明主要包括这几种关键字:delegate,Action,Func,predicate
(1)delegate
一种常见的委托声明。
eg:public int delegate delegateExample(int a,int b);
返回int类型,输入参数a和b.
最多输入32个参数
(2)Action
一种无返回值,无输入参数或者泛型输入参数的委托声明。
eg:Example
无返回值,无输入参数
eg:Examaple<int ,string>
无返回值,输入参数int,string
最多输入16个参数
应用:
public void Test<int,string>(Action<int,string> action,int a,string b)
{
action(a,b);
}
(3)Func
一种有返回值,无输入参数或者泛型输入参数的委托声明。
eg:Example
返回int类型,无输入参数
eg:Example<string,int>
返回int类型,输入参数string.
最多输入16个参数
应用:
public int Test<string,int>(Func<string,int> func,string a)
{
return func(a);
}
(4)predicate
一种返回bool,泛型输入参数的委托声明。
eg:Example
返回bool类型,输入参数int
应用:
public bool Test(predicate predicate,int a)
{
return predicate(a);
}