CA1053 : Les types de conteneurs statiques ne doivent pas comporter de constructeurCA1053: Static holder types should not have constructors

TypeNameTypeName StaticHolderTypesShouldNotHaveConstructorsStaticHolderTypesShouldNotHaveConstructors
CheckIdCheckId CA1053CA1053
CategoryCategory Microsoft.DesignMicrosoft.Design
Modification avec ruptureBreaking Change RuptureBreaking

CauseCause

Un type public ou imbriqué déclare uniquement des membres statiques et dispose d'un constructeur par défaut public ou protégé.A public or nested public type declares only static members and has a public or protected default constructor.

Description de la règleRule Description

Le constructeur est inutile car l'appel à des membres statiques ne requiert aucune instance du type.The constructor is unnecessary because calling static members does not require an instance of the type. En outre, étant donné que le type n’a pas de membres non statiques, création d’une instance ne donne pas accès à un des membres du type.Also, because the type does not have non-static members, creating an instance does not provide access to any of the type's members.

Comment corriger les violationsHow to Fix Violations

Pour corriger une violation de cette règle, supprimez le constructeur par défaut ou rendez-le privé.To fix a violation of this rule, remove the default constructor or make it private.

Note

Certains compilateurs créent automatiquement un constructeur public par défaut si le type ne définit pas de constructeur.Some compilers automatically create a public default constructor if the type does not define any constructors. Si c’est le cas avec le type, ajoutez un constructeur par défaut privé pour éliminer la violation.If this is the case with your type, add a private default constructor to eliminate the violation.

Quand supprimer les avertissementsWhen to Suppress Warnings

Ne supprimez aucun avertissement de cette règle.Do not suppress a warning from this rule. La présence du constructeur suggère que le type n’est pas un type static.The presence of the constructor suggests that the type is not a static type.

ExempleExample

L’exemple suivant montre un type qui viole cette règle.The following example shows a type that violates this rule. Notez qu’il n’y a aucun constructeur par défaut dans le code source.Notice that there is no default constructor in the source code. Lorsque ce code est compilé dans un assembly, le compilateur c# insérera un constructeur par défaut, ce qui enfreint cette règle.When this code is compiled into an assembly, the C# compiler will insert a default constructor, which will violate this rule. Pour corriger cela, déclarez un constructeur privé.To correct this, declare a private constructor.

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