Func和Action 是.NET中已经声明好的两种委托 一种可以有返回值,一种没有返回值
如果想要详细学习一下委托和Lambda表达式 可以看一下刘铁猛老师讲的课
链接:刘铁猛《C#语言入门详解》全集_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV13b411b7Ht?p=31
平时我们如果要用到委托一般都是先声明一个委托类型,比如:
private delegate string Say();
string说明适用于这个委托的方法的返回类型是string类型,委托名Say后面没有参数,说明对应的方法也就没有传入参数。
写一个适用于该委托的方法:
public static string SayHello() { return "Hello"; }
最后调用:
static void Main(string[] args) { Say say = SayHello; Console.WriteLine(say()); }
这里我们先声明委托,然后再将方法传给该委托。有没有办法可以不定义委托变量呢?
答案是肯定的,我们可以用Func.
Func是.NET里面的内置委托,它有很多重载。
Func<TResult></