gpt4 book ai didi

c# - 确保方法逻辑在没有 bool 标志的情况下执行一次的更好方法

转载 作者:太空狗 更新时间:2023-10-30 01:16:48 25 4
gpt4 key购买 nike

这是一种使用标志来执行 Dosomething 逻辑的方法。 (C# 代码和更新总是每帧调用一次。)
而且它不是那么复杂,简单,非常简单且很好用的方式。

class Monster {
bool isCalled = false;
float energy = 0.0f;

void Update()
{
energy += Random.Range(0f, 1f);
if((isCalled == false) && (energy>100.0f))
{
isCalled = true;
DoSomething();
}
}

void DoSomething(){}
}

但是,我认为 bool 标志的管理是一种令人厌烦的任务。
所以我正在努力寻找更好的替代方案。

有没有更好或更优雅的方式来做到这一点(执行一次 Dosomething)而不用 bool 标志?
例如,另一种设计模式的方式等。

最佳答案

我宁愿将所有这些标志组合到一个枚举中,就像这样:

class Monster {
[Flags]
private enum Status {
Updated,
Called,
Killed,
...
}

private Status status;

void Update() {
if ((status & Status.Updated) == Status.Updated)
return;

try {
....
}
finally {
status |= Status.Updated;
}
}
}

关于c# - 确保方法逻辑在没有 bool 标志的情况下执行一次的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33953457/

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