共用方式為


CA2121:靜態建構函式應為私用

型別名稱

StaticConstructorsShouldBePrivate

CheckId

CA2121

分類

Microsoft.Security

中斷變更

中斷

原因

具有靜態建構函式的型別不是私用的 (Private)。

規則描述

靜態建構函式 (也稱為類別建構函式) 是用於初始化型別。 系統會在建立型別的第一個執行個體 (Instance) 或參考任何靜態成員之前呼叫靜態建構函式。 因此,使用者對何時呼叫靜態建構函式不具控制權。 如果靜態建構函式不是私用的,則可由系統以外的程式碼呼叫。 視建構函式中執行的作業而定,這會造成非預期的行為。

C# 和 Visual Basic .NET 編譯器會強制執行此規則。

如何修正違規

違規通常是由下列動作造成:

  • 您定義型別的靜態建構函式,但未將它設為私用。

  • 程式語言編譯器將預設靜態建構函式加入至型別,但未將它設為私用。

若要修正第一種違規的情況,請將靜態建構函式設為私用。 若要修正第二種違規的情況,請將私用的靜態建構函式加入至型別。

隱藏警告的時機

請勿隱藏這些違規。 如果您的軟體設計需要明確呼叫靜態建構函式,這個設計就可能包含重大的缺陷,需要重新檢視。