gpt4 book ai didi

c# - Func<> 与 lambda 表达式

转载 作者:太空狗 更新时间:2023-10-29 22:26:03 24 4
gpt4 key购买 nike

在学习Func<>语法的过程中,我在一些示例中发现了以下部分代码:

  public static class Lambda
{
public static int MyFunc(Func<string, int> func)
{
//some logic
return 0;
}
}

和示例调用:

var getInt = Lambda.MyFunc((url) => { Console.WriteLine(url); return 0; }

还有我的问题:

如果从未分配值(或者可能是?),为什么允许使用此(url)将 func 作为 lambda 表达式传递到上面?像这样传递 Func 有什么意义?

编辑:澄清我的问题。我只是想知道这个示例调用 - 为什么如果无法启动值,编译器不会禁止像上面那样将字符串作为参数传递(使用 lambda (url) => {} )。是否有任何示例可用于像上面那样传递字符串?

最佳答案

url 是 lambda 表达式的参数 的名称。就像这样写一个方法:

public static int Foo(string url)
{
Console.WriteLine(url);
return 0;
}

然后从中创建一个委托(delegate):

Func<string, int> func = Foo;

现在为了调用委托(delegate),你需要给它提供一个字符串——然后它成为参数的值,就像你正常调用方法一样:

int result = func("some url");

关于c# - Func<> 与 lambda 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31526529/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com