共用方式為


CA1822:將成員標記為靜態

型別名稱

MarkMembersAsStatic

CheckId

CA1822

分類

Microsoft.Performance

中斷變更

非中斷 - 如果不論您做了何種變更,在組件外部都看不到成員時非中斷 - 如果您只是使用 this 關鍵字將成員變更為執行個體成員

中斷 - 如果您將成員從執行個體成員變更為靜態成員,而且可以在組件外部看見成員

原因

不會存取執行個體資料的成員並不會標記為 static (在 Visual Basic 中為 Shared)。

規則描述

不會存取執行個體資料或不會呼叫執行個體方法的成員,可以標記為 static (在 Visual Basic 中為 Shared)。將方法標記為 static 之後,編譯器將對這些成員發出非虛擬呼叫位置。發出非虛擬呼叫位置將避免在執行階段為確保目前物件指標為非 Null,而針對每個呼叫進行檢查。這麼做可以讓重視效能的程式碼獲得可觀的效能。在某些情況下,無法存取目前物件執行個體就表示正確性發生問題。

如何修正違規

將成員標記為 static (在 Visual Basic 中為 Shared),或者在方法主體中使用 'this'/'Me' (如果適用)。

隱藏警告的時機

先前提供之程式碼的修正若是中斷變更,則您可以放心地隱藏這項規則的警告。

相關規則

CA1811:避免使用未呼叫的私用程式碼

CA1812:避免使用未執行個體化的內部類別

CA1804:必須移除未使用的區域變數