C#中Func的用法和Lambda表达式

在C#3.0中引用了Limbda表达式,Lambda表达式实际上就是一个方法,只不过该方法是匿名方法(即没有名称的方法)

代码片段:  Func<int,string,string> t=(int x, string b) => (x.ToString() + b);就等于

private  string  deletegate  TestString(int x string b );//定义一个委托,返回值为string类型

private string  test(int x string b)

{

return x.ToString() + b;

}

TestString t=new TestString(test);

t(44,"bbb");

Func<int,string,string>就是定义一个委托=private  string  deletegate  TestString(int x string b ),前两个参数是相应方法的参数类型,最后一个为方法的返回类型

 

C# option =>{}写法,实质是一个Action,Action是一个无返回类型或void类型的委托,<string>是参数

如果是匿名的话可以直接(返回为string,带一个参数):

name=>{

}

或者

(name)=>{

}

无参数的Action写法

Action line = () => Console.WriteLine();

Action line = () => {

Console.WriteLine();

Console.WriteLine();

}

https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/statements-expressions-operators/lambda-expressions

 

Action定义

1、无参Action

public delegate void Action();

2、封装一个方法,该方法只有一个参数并且不返回值。

最多可封装16个T参数

 

声明:本站内容来源于原创和互联网,尊重作者版权,转载请注明来源网址,欢迎收藏,谢谢!