using System;
namespace ConsoleApp4
{
delegate void test(string s);
class Program
{
static void Main(string[] args)
{
test func1 = delegate (string s) { Console.WriteLine(s); };
test func2 = (x) => { Console.WriteLine(x); };
//这里的匿名函数都是一个函数块,也可以使用一个表达式,这样会将表达式结果返回如(x) => x*x 如果传入5,则返回25。
}
}
}
分别使用delegate关键字创建一个匿名函数,和使用lambda创建一个匿名函数。他们都是赋给一个委托。
使用delegate关键字创建的匿名函数可以没有参数列表,而lambda创建的匿名函数要有参数列表。
所有需要传递一个函数作为参数的地方都可以传递一个匿名函数。
匿名函数的参数不可以使用ref、out等关键字,不可以在不安全模式下使用匿名函数。
参考:https://www.bilibili.com/video/BV1TJ411h7cZ?p=227
同样可以声明一个泛型委托来实现一个泛型的匿名函数。