CA1822:將成員標記為靜態
型別名稱 |
MarkMembersAsStatic |
CheckId |
CA1822 |
分類 |
Microsoft.Performance |
中斷變更 |
非中斷 - 如果不論您做了何種變更,在組件外部都看不到成員時 非中斷 - 如果您只是使用 this 關鍵字將成員變更為執行個體成員 中斷 - 如果您將成員從執行個體成員變更為靜態成員,而且可以在組件外部看見成員 |
原因
不會存取執行個體資料的成員並不會標記為 static (在 Visual Basic 中為 Shared)。
規則描述
不會存取執行個體資料或不會呼叫執行個體方法的成員,可以標記為 static (在 Visual Basic 中為 Shared)。 將方法標記為 static 之後,編譯器將對這些成員發出非虛擬呼叫位置。 發出非虛擬呼叫位置將避免在執行階段為確保目前物件指標為非 Null,而針對每個呼叫進行檢查。 這麼做可以讓重視效能的程式碼獲得可觀的效能。 在某些情況下,無法存取目前物件執行個體就表示正確性發生問題。
如何修正違規
將成員標記為 static (在 Visual Basic 中為 Shared),或者在方法主體中使用 'this'/'Me' (如果適用)。
隱藏警告的時機
先前提供之程式碼的修正若是中斷變更,則您可以放心地隱藏這項規則的警告。