gpt4 book ai didi

c# - 当在 C# 中调用任何其他方法时,如何自动重置 bool 值?

转载 作者:太空狗 更新时间:2023-10-30 00:17:18 27 4
gpt4 key购买 nike

使用 C#,如果函数 A() 在函数 C() 之前被调用,我需要做一些额外的工作。如果在 A()C() 之间调用了任何其他函数,那么我不想做那些额外的工作。有什么想法需要最少的代码重复吗?

我试图避免在每个函数 B1..BN 中添加类似 flag = false; 的行。

这是一个非常基本的例子:

bool flag = false;

void A()
{
flag = true;
}

void B1()
{
...
}

void B2()
{
...
}

void C()
{
if (flag)
{
//do something
}
}

上面的例子只是使用了一个简单的例子,但我愿意使用 bool 值以外的东西。重要的是我希望能够设置和重置某种标志,以便 C() 知道如何相应地运行。

感谢您的帮助。如果您需要澄清,我会编辑我的帖子。

最佳答案

为什么不将您的“额外工作”分解为一个内存函数(即缓存其结果的函数)?每当您需要这项工作时,只需调用此函数,如果缓存是新的,它就会短路。每当该工作变得陈旧时,使缓存无效。在你上面相当奇怪的例子中,我假设你需要在每个 B 中调用一个函数,在 C 中调用一个函数。调用 A 将使缓存无效。

如果您正在寻找解决方法(即一些聪明的方法来捕获所有函数调用并插入此调用),我真的不会打扰。我可以设想一些疯狂的运行时反射代理类生成,但你应该让你的代码流清晰明了;如果每个函数都依赖于已经完成的工作,只需在每个函数中调用“doWork”即可。

关于c# - 当在 C# 中调用任何其他方法时,如何自动重置 bool 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2626021/

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