簡體   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