Freigeben über


CA1053: Statische Haltertypen sollten keine Konstruktoren aufweisen

TypeName

StaticHolderTypesShouldNotHaveConstructors

CheckId

CA1053

Kategorie

Microsoft.Design

Unterbrechende Änderung

Breaking

Ursache

Ein öffentlicher oder verschachtelter öffentlicher Typ deklariert nur statische Member und verfügt über einen öffentlichen oder geschützten Standardkonstruktor.

Regelbeschreibung

Der Konstruktor ist überflüssig, da zum Aufrufen statischer Member keine Instanz des Typs erforderlich ist. Da der Typ außerdem keine nicht statischen Member besitzt, wird durch die Erstellung einer Instanz kein Zugriff auf einen Member des Typs erteilt.

Behandeln von Verstößen

Um einen Verstoß gegen diese Regel zu beheben, entfernen Sie den Standardkonstruktor, oder definieren Sie ihn als privaten Konstruktor.

Tipp

Einige Compiler erstellen automatisch einen öffentlichen Standardkonstruktor, wenn der Typ keine Konstruktoren definiert. Trifft dies auf Ihren Typ zu, fügen Sie einen private-Standardkonstruktor hinzu, um den Verstoß zu beseitigen.

Wann sollten Warnungen unterdrückt werden?

Unterdrücken Sie keine Warnung dieser Regel. Das Vorhandensein des Konstruktors impliziert, dass es sich bei dem Typ nicht um einen statischen Typ handelt.

Beispiel

Im folgenden Beispiel wird ein Typ veranschaulicht, der gegen diese Regel verstößt. Beachten Sie, dass es im Quellcode keinen Standardkonstruktor gibt. Wenn dieser Code in eine Assembly kompiliert wird, fügt der C#-Compiler einen Standardkonstruktor ein, der gegen diese Regel verstößt. Um diesen Verstoß zu beheben, deklarieren Sie einen privaten Konstruktor.

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() {}
   }
}