繁体   English   中英

如果仅在游戏中触发一次语句,则效率更高

[英]More efficient if statement when only fired once in the game

假设我想要一个if语句,它只会在每个游戏中触发一次。
一旦发生这种情况,让CPU重新检查该条件的有效性对我来说似乎是浪费时间。 有办法以某种方式不再进行此检查吗? 它介意根本不会导致任何显着的性能提升。 但是我很好奇。

我想要一个通用的解决方案,这就是为什么我让它含糊不清,因为我经常在这种情况下运行。

伪代码:

if(CoinCollected && !CoinCollectedBefore)
{
  //Do stuff   
}

根据需要检查的条件,通常的解决方案是创建一个私有bool,然后检查是否已设置。

private bool cachedResult;
protected bool CachedResult
{
    get { return cachedResult ?? (cachedResult = ComplicatedCalculation()); }
}

...

if(CachedResult)
{
...
}

此代码检查'cachedResult'是否为null。 如果是这样,则运行ComplicatedCalculation()方法以获取结果。 之后,将填充“ cachedResult”,并且if语句将不会重新运行计算。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM