gpt4 book ai didi

c# - 在创建时调用 Lambda

转载 作者:太空狗 更新时间:2023-10-29 19:58:45 27 4
gpt4 key购买 nike

在 javascript 中,通常使用闭包创建然后立即调用匿名函数,如下所示:

var counter = (function() {
var n = 0;
return function() { return n++; }
}());

由于强类型,这在 C# 中非常冗长:

Func<int> counter = ((Func<Func<int>>)(() =>
{
int n = 0;
return () => n++;
}))();

在 C# 中是否有更优雅的方式来处理此类事情?

最佳答案

在 C# 中不需要外层的 lambda,它可以用一个简单的 block 代替。

直接调用 lambda 是 Javascript 中缺少 block 级变量的解决方法(新版本支持使用 let 的 block 作用域)。

Func<int> counter;

{
int n = 0;
counter = () => n++;
}

关于c# - 在创建时调用 Lambda,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8260243/

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