发布:2023/12/7 15:12:09作者:大数据 来源:大数据 浏览次数:551
在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>是参数
1 2 3 4 5 6 7 8 |
Action<string> greet = name => { string greeting = $"Hello {name}!"; Console.WriteLine(greeting); }; greet("World"); // Output: // Hello World! |
如果是匿名的话可以直接(返回为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
1、无参Action
public delegate void Action();
2、封装一个方法,该方法只有一个参数并且不返回值。
1 |
<span class="hljs-keyword">public</span> <span class="hljs-keyword">delegate</span> <span class="hljs-keyword">void</span> Action<<span class="hljs-keyword">in</span> T>(T obj); |
最多可封装16个T参数
© Copyright 2014 - 2025 柏港建站平台 ejk5.com. 渝ICP备16000791号-4