C#基础—— Func 委托
1.什么是Func委托
Func是一种委托,这是在3.5里面新增的,2.0里面我们使用委托是用Delegate,Func位于System.Core命名空间下,
Func<int,string> ,它其实就是一个C#内部已经定义好的委托类型,尖括号里是int是委托的参数类型,string是返回值类型,Func可以有很多个参数,无论有几个,最后一个固定是返回值,前几个都是参数。
Func
Func<in T,out TResult>
Func<in T1,in T2,…,in T16, out TResult>
2.Func委托的特点
必须有一个返回值
Func泛型委托,尖括号中,最后一个参数为返回类型。
Func泛型委托,如果尖括号中只有一个参数,则表示返回类型。
3.使用Func委托
// 定义Func委托,没有参数,返回值是string
static string GetName()
{
string str = “张三”;
return str;
}
在Main方法中执行:
static void Main(string[] args)
{
// 定义一个Func 委托, 指向一个返回string类型的 方法
Func< string > name= GetName;
Console.WriteLine(name());
Console.ReadLine();
}
执行结果:
// 定义一个Func 委托,一个int类型参数 , 返回值是int
static int getIndex(int x)
{
return x;
}
在Main方法中执行:
static void Main(string[] args)
{
// 定义一个Func 委托, 指向一个返回int类型的 方法
Func<int, int> index = getIndex;
Console.WriteLine(index(5));
Console.ReadLine();
}
执行结果:
// 定义一个Func 委托,有两个int类型参数 ,返回值是int
static int calcMul(int x,int y)
{
int a = x*y;
return a;
}
在Main方法中执行:
static void Main(string[] args)
{
// 定义一个Func 委托,指向一个返回int类型的 方法
Func<int, int, int> calc = calcMul;
Console.WriteLine(calc(15,2));
Console.ReadLine();
}
执行结果: