[英]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.