gpt4 book ai didi

c# - 在 C# 中有没有一种方法可以像在 jQuery "one"方法中那样只调用一次方法?

转载 作者:可可西里 更新时间:2023-11-01 09:17:26 24 4
gpt4 key购买 nike

我想知道是否有一种方法可以在 C# 中只执行一次代码,就像 jquery 中的“one”一样:

$("#foo").one("点击", function() { alert("这只会显示一次。");});

我想做的是:

public void foo(){
Console.Write("hello");
}

然后

foo();
foo();
foo();

并且输出结果一定是

hello

我正在寻找一个库,而不仅仅是使用标志属性。

最佳答案

我无法想象为什么要做那样的事情,但如果你真的这样做并且你希望它对任何方法都通用,你可以这样做:

void Main() {
var myFoo = callOnlyOnce(foo);
myFoo();
myFoo();
myFoo();

var myBar = callOnlyOnce(bar);
myBar();
myBar();
myBar();
}

void foo(){
Console.Write("hello");
}
void bar() { Console.Write("world"); }


Action callOnlyOnce(Action action){
var context = new ContextCallOnlyOnce();
Action ret = ()=>{
if(false == context.AlreadyCalled){
action();
context.AlreadyCalled = true;
}
};

return ret;
}
class ContextCallOnlyOnce{
public bool AlreadyCalled;
}

关于c# - 在 C# 中有没有一种方法可以像在 jQuery "one"方法中那样只调用一次方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5597729/

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