C#中Fun和前面介绍过的Action有点类似,都是一个委托方法,不同的是Func是有返回值的,而Action没有
Fun常用有两个参数,前面的是输入参数,后面的是输出参数(意味着是在另一部分运算中产生的)恰恰是整个方法的返回值,(T arg)代表的是和输出参数类型相同的方法名称(返回值的类型和Func输出参数类型相同)
Fnc最多有16个输入参数,有且只有一个输出参数,Func function代表function函数的返回值得类型是TResult。
Action委托和Func委托是C#平台最重要的两个委托,有了这两个委托,就可以定义出指向任意方法的“函数指针”。注意:这里的函数指针是打引号的,因为C#里不叫函数指针。
我们看看怎么使用Func委托
1、创建控制台应用程序,定义带参数的方法SayHello。如下图:
2、下面定义Func委托的变量,那么像SayHello方法这样,带一个参数,一个返回值的委托应该这么定义呢?
C#已经替你想好了,Func委托是带泛型的委托,可以任意指定类型。那么就看一下怎么使用这个功能。如下图:
3、下面解析一下这一条定义语句:
“Func func = new Func(SayHello)” 。
Func间括号里有两个int,第一个int表示有一个int类型的参数,第二个int,表示有一个int类型的返回值。
4、定义完成后,就可以使用了。 使用的代码,如下图: 调用委托的Invoke方法,就相当于调用SayHello方法。 也可以简写为"func(3)"。
5、结果输出