共用方式為


CA1053:靜態預留位置型別不應包含建構函式

型別名稱

StaticHolderTypesShouldNotHaveConstructors

CheckId

CA1053

分類

Microsoft.Design

中斷變更

中斷

原因

公用或巢狀公用型別只宣告靜態成員,而且具有公用或保護的預設建構函式。

規則描述

建構函式不是必要的,因為呼叫靜態成員不需型別的執行個體。 此外,因為型別沒有非靜態成員,因此建立執行個體不會提供任何型別成員的存取權限。

如何修正違規

若要修正此規則的違規情形,請移除預設建構函式或使它成為私用的。

注意事項注意事項

如果型別並未定義任何建構函式,則有些編譯器會自動建立公用預設建構函式。 如果您的型別情況如此,請加入私用預設建構函式以排除此違規情形。

隱藏警告的時機

請勿隱藏此規則的警告。 出現建構函式意味著此型別不是靜態型別。

範例

下列範例顯示違反此規則的型別。 請注意,原始程式碼中沒有預設建構函式。 當此程式碼編譯成組件 (Assembly) 時,C# 編譯器將會插入違反此規則的預設建構函式。 若要更正此錯誤,請宣告私用建構函式。

using System;

namespace DesignLibrary
{
   public class NoInstancesNeeded
   {
      // Violates rule: StaticHolderTypesShouldNotHaveConstructors.
      // Uncomment the following line to correct the violation.
      // private NoInstancesNeeded() {}

      public static void Method1() {}
      public static void Method2() {}
   }
}