委托可以演变为匿名方法,然后由匿名方法演变成为Lambda。
static void MM(string[] args)
{
// 无参数无返回值的匿名方法
Action a1 = delegate ()
{
Console.WriteLine("这是一个匿名方法");
};
a1();
// 有参数无返回值的匿名方法
Action<string, string> a2 = delegate (string s, string t)
{
Console.WriteLine($"s={s},t={t}");
};
a2("1","2");
// 有参数有返回值的匿名方法
Func<int, int, int> f1 = delegate (int x, int y)
{
return x + y;
};
Console.WriteLine(f1(1, 2));
// 有参数有返回值的匿名方法 缩写1 省略delegate 改为 =>
Func<int, int, int> f2 = (int x, int y) =>
{
return x + y;
};
Console.WriteLine(f2(1, 2));
// 有参数有返回值的匿名方法 缩写2 代码有返回值并且只有一行代码,省略{}和return
Func<int, int, int> f3 = (int x, int y) => x + y;
Console.WriteLine(f3(1, 2));
// 有参数有返回值的匿名方法 缩写3 参数列表的类型是可以省略的
Func<int, int, int> f4 = (x, y) => x + y;
Console.WriteLine(f4(1, 2));
// 无参数无返回值的匿名方法 缩写1 无参数无返回值省略{}
Action s1 = () => Console.WriteLine("这是一个匿名方法 缩写形式");
s1();
// 有参数无返回值的匿名方法 缩写2 有一个参数无返回值省略{}和()
Action<string> s2 = x => Console.WriteLine($"{x}");
s2("fdsaf");
}
标签:Console,演变,委托,int,匿名,参数,WriteLine,返回值,lambda
From: https://www.cnblogs.com/sunhouzi/p/17857633.html