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

項目
RuleId CA2121
類別 Microsoft.Security
重大變更 中斷

原因

類型具有非私用的靜態建構函式。

注意

此規則已遭取代。 如需詳細資訊,請參閱過時的規則

檔案描述

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

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

如何修正違規

違規通常是由下列其中一個動作所造成:

  • 您已為類型定義靜態建構函式,但未將其設為私用。

  • 程式設計語言編譯器已將預設靜態建構函式新增至您的類型,但未將其設為私用。

若要修正第一種違規,請將靜態建構函式設為私用。 若要修正第二種類型,請將私人靜態建構函式新增至您的類型。

隱藏警告的時機

請勿隱藏這些違規。 如果您的軟體設計需要明確呼叫靜態建構函式,則設計可能包含嚴重缺陷,且應該加以檢閱。