Teilen über


CA2263: Generische Überladung bevorzugen, wenn der Typ bekannt ist

Wert
Regel-ID CA2263
Title Generische Überladung bevorzugen, wenn der Typ bekannt ist
Kategorie Verwendung
Korrektur ist blockierend oder nicht-blockierend Non-breaking
Standardmäßig in .NET 10 aktiviert Als Vorschlag

Ursache

Eine Methodenüberladung, die ein System.Type Argument akzeptiert, wird aufgerufen, wenn der Typ zur Kompilierungszeit bekannt ist und eine geeignete generische Überladung verfügbar ist.

Regelbeschreibung

Generische Überladungen sind vorzugsweise Überladungen, die ein Argument vom Typ System.Type akzeptieren, wenn der Typ zur Kompilierungszeit bekannt ist (mit dem Typeof-Operator in C# oder dem GetType-Operator in Visual Basic). Generische Überladungen fördern übersichtlicheren und typsichereren Code mit verbesserten Kompilierungszeitprüfungen.

Wie man Verstöße behebt

Verwenden Sie die geeignete generische Überladung, um einen Verstoß gegen diese Regel zu beheben.

Example

Der folgende Codeausschnitt zeigt einen Verstoß gegen CA2263:

int size = Marshal.SizeOf(typeof(bool));
Dim size As Integer = Marshal.SizeOf(GetType(Boolean))

Der folgende Codeausschnitt behebt die Verletzung:

int size = Marshal.SizeOf<bool>();
Dim size As Integer = Marshal.SizeOf(Of Boolean)()

Wann sollten Warnungen unterdrückt werden?

Es ist sicher, eine Warnung aus dieser Regel zu unterdrücken; Es wird jedoch empfohlen, wenn möglich eine generische Überladung zu verwenden.

Unterdrücken einer Warnung

Um nur eine einzelne Verletzung zu unterdrücken, fügen Sie der Quelldatei Präprozessoranweisungen hinzu, um die Regel zu deaktivieren und dann wieder zu aktivieren.

#pragma warning disable CA2263
// The code that's violating the rule is on this line.
#pragma warning restore CA2263

Deaktivieren Sie die Regel für eine Datei, einen Ordner oder ein Projekt, indem Sie den Schweregrad in der none auf setzen.

[*.{cs,vb}]
dotnet_diagnostic.CA2263.severity = none

Weitere Informationen finden Sie unter Vorgehensweise: Unterdrücken von Codeanalyse-Warnungen.