gpt4 book ai didi

javascript - c# 中等效的 javascript 闭包是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:06:31 25 4
gpt4 key购买 nike

考虑这个简单的 .js 代码:

const createCounter = () => {
let value = 0;
return {
increment: () => { value += 1 },
decrement: () => { value -= 1 },
logValue: () => { console.log(value); }
}
}

//用法

const { increment, decrement, logValue } = createCounter();

我很确定 c# 支持一流函数,请注意我不想使用类来重新编写上面的代码。 c# 中的等效闭包是什么?

我做了这个:

public Func<WhatType?> CreateCounter = () => {
var value = 0;
return what?
}

最佳答案

您可以混合使用 ValueTupleslambda expressions .

private static (Action increment, Action decrement, Action logValue) CreateCounter()
{
var value = 0;

return
(
() => value += 1,
() => value -= 1,
() => Console.WriteLine(value)
);
}

用法

var (increment, decrement, logValue) = CreateCounter();
increment();
increment();
decrement();
logValue();

关于javascript - c# 中等效的 javascript 闭包是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57511557/

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