Nicht instanziierte interne Klassen vermeiden
TypeName |
AvoidUninstantiatedInternalClasses |
CheckId |
CA1812 |
Kategorie |
Microsoft.Performance |
Unterbrechende Änderung |
NonBreaking |
Ursache
Eine Instanz eines Typs auf Assemblyebene wird durch Code nicht innerhalb der Assembly erstellt. Die folgenden Typen werden durch diese Regel nicht überprüft:
Werttypen
Abstrakte Datentypen
Enumerationen
Delegaten.
Von einem Compiler ausgegebene Arraytypen
Nicht instanziierbare Typen, die nur statische Methoden definieren
Regelbeschreibung
Diese Regel versucht, einen Aufruf eines der Konstruktoren des Typs zu finden, und meldet einen Verstoß, wenn kein Aufruf gefunden wird.
Behandlung von Verstößen
Um einen Verstoß gegen diese Regel zu beheben, entfernen Sie den Typ, oder fügen Sie den Code hinzu, in dem der Typ verwendet wird. Wenn der Typ nur statische Methoden enthält, fügen Sie dem Typ eines der folgenden Elemente hinzu, um den Compiler daran zu hindern, einen Standardkonstruktor für eine öffentliche Instanz auszugeben:
Einen privaten Konstruktor (für Typen, die auf die Versionen 1.0 und 1.1 von .NET Framework abzielen)
Den static-Modifizierer (für Typen, die auf .NET Framework 2.0 abzielen)
Warnungsausschluss
Eine Warnung dieser Regel kann gefahrlos ausgeschlossen werden. Es sind jedoch keine Szenarien bekannt, in denen dies erforderlich ist.
Verwandte Regeln
Nicht aufgerufenen privaten Code vermeiden