Partager via


CA1053 : Les types de conteneurs statiques ne doivent pas comporter de constructeur

TypeName

StaticHolderTypesShouldNotHaveConstructors

CheckId

CA1053

Catégorie

Microsoft.CSharp

Modification avec rupture

Oui

Cause

Un type public ou imbriqué déclare uniquement des membres statiques et dispose d'un constructeur par défaut public ou protégé.

Description de la règle

Le constructeur est inutile car l'appel à des membres statiques ne requiert aucune instance du type. Par ailleurs, étant donné que le type ne présente aucun membre non statique, la création d'une instance ne donne accès à aucun des membres du type.

Comment corriger les violations

Pour corriger une violation de cette règle, supprimez le constructeur par défaut ou rendez-le privé.

Notes

Certains compilateurs créent automatiquement un constructeur public par défaut si le type ne définit aucun constructeur. Si votre type est dans ce cas, ajoutez un constructeur par défaut privé pour éliminer la violation.

Quand supprimer les avertissements

Ne supprimez aucun avertissement de cette règle. La présence du constructeur laisse entendre que le type n'est pas statique.

Exemple

L'exemple suivant affiche un type qui ne respecte pas cette règle. Remarquez l'absence de constructeur par défaut dans le code source. Lorsque ce code est compilé dans un assembly, le compilateur C# insérera un constructeur par défaut, ce qui violera cette règle. Pour remédier à cette réaction, déclarez un constructeur privé.

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