C#匿名函数_C#匿名函数使⽤整理
⼀、C# 匿名函数简介
匿名⽅法:没有名字的⽅法,不需要名字的⽅法。
匿名⽅法是没有名称只有主体的⽅法。
匿名⽅法和委托搭载使⽤。
匿名⽅法 精确点可以改叫 匿名函数。
委托是⽤于引⽤与其具有相同标签的⽅法。换句话说,您可以使⽤委托对象调⽤可由委托引⽤的⽅法。
匿名⽅法(Anonymous methods) 提供了⼀种传递代码块作为委托参数的技术。
在匿名⽅法中您不需要指定返回类型,它是从⽅法主体内的 return 语句推断的。
⼆、 C# 匿名函数使⽤场景
1. delegate 委托匿名⽅法
/
/委托
delegate int CalcuteSum(int num1,int num2);
static void ObjectTest1()
{
//委托匿名⽅法1
CalcuteSum calcuate1 = delegate (int num1, int num2)
{
return num1 + num2;
};
int result = calcuate1(1, 2);
Console.WriteLine(result);//3
/
/委托匿名⽅法1
calcuate1 = delegate (int num1, int num2)
{
return num1 + num2 + 1;
};
writeline函数
int result2 = calcuate1(1, 2);
Console.WriteLine(result2);//4
//委托静态⽅法
calcuate1 = TestSum;
int result3 = TestSum(1, 2);
Console.WriteLine(result3);//5
}
static int TestSum(int num1, int num2)
{
return num1 + 1 + num2 + 1;
}
2. 匿名⽅法 和  Lamda表达式
从 C# 3 开始,lambda 表达式提供了⼀种更简洁和富有表现⼒的⽅式来创建匿名函数。 使⽤ => 运算符构造 lambda 表达式:
Func<int, int, int> sum = (a, b) => a + b;
Console.WriteLine(sum(3, 4));  // output: 7
3.⽅便开发和使⽤的委托  Action,Func
Action: 没有返回类型的委托定义。
Action greet = delegate { Console.WriteLine("Hello!"); };
greet();
Action<int, int> getNum = delegate (int num1, int num2)
{
var result = num1 * num2;
Console.WriteLine(result);
};
Func :需要返回类型的委托定义。
Func<int, int, int> sum = static delegate (int a, int b) { return a + b; }; Console.WriteLine(sum(10, 4));  // output: 14
更多: