c#中Lambda表达式定义
Lambda表达式本质上是一个匿名函数,用于实例化Action或者Func型委托函数
基本定义
Func<类型1,类型2,...返回类型> = (变量1,变量2,返回变量)=>{语句}
Action<类型1,类型2,...>=(变量1,变量2,....)=>{}
可以用来对委托的Action与Func进行实例化
示例1,定义一个函数实现两个数相加,使用这个函数。
/// <summary>
/// 两位相加
/// </summary>
/// <param name="a"></param>
/// <param name="b"></param>
/// <returns></returns>
public static int Sum(int a, int b)
{
return a + b;
}
使用这个函数
int x = 1;
int y = 2;
int c = Sum(x, y);
Console.WriteLine(c);
使用Lambda进行改造
public void DoTest2()
{
//当前Func委托有两个参数是x,y,返回值类型是int
Func<int, int, int> sum = (x, y) => { return x + y;};
//调用
int x = 1;
int y = 2;
Console.WriteLine(sum(x,y));
}
实例使用
使用匿名函数的Lambda表达式,来实例化一个Func委托
当将委托作为函数参数的时候可以直接使用
实例:根据传入打印的内容,以及打印的次数,打印文件
/// <summary>
/// 根据传入打印的内容,以及打印的次数,打印文件
/// </summary>
/// <param name="printInfo"></param>
/// <param name="printNum"></param>
public static void Print(Func<string,int,string> print, string printInfo,int printNum)
{
string printContent = print(printInfo,printNum);
Console.WriteLine(printContent);
}
//调用
public static void DoTest3()
{
Print((content,num) =>
{
string printInfo = "";
for (int i = 0; i < num; i++)
{
printInfo += i+":" + content + "\r\n";
}
return printInfo;
},"内容内容",5);
}
注意在以上代码中,使用Lambda表达式来实现一个委托的方法,而无须重新定义一个新的函数。
本文暂时没有评论,来添加一个吧(●'◡'●)