0
private bool _invalidated
public void Invalidate()
{
_invalidated = true;
}
public void Invalidate()
{
if(!_invalidated)
{
_invalidated = true;
}
}
這將是更快?
這將被稱爲很多次。
private bool _invalidated
public void Invalidate()
{
_invalidated = true;
}
public void Invalidate()
{
if(!_invalidated)
{
_invalidated = true;
}
}
這將是更快?
這將被稱爲很多次。
第一個是較少的指令,不包含條件,因此它是可取的。然而,第二個可能會被一個足夠聰明的編譯器/ JITer優化掉。
正如Andreas所說,這取決於。正如I4V所說的那樣,換言之,這並不重要。
我會爲第一個,少代碼和漂亮(當然是主觀的)。
它多久會被調用? – AmazingDreams
這種不成熟的優化方式。 – Matt
只需製作一個基準並嘗試一下。這是確保的唯一方法。 (我的猜測都是一樣的,但我可能是錯的)。無論結果如何,「_invalidated = false」更容易閱讀,差異必須忽略不計...... – Falanwe