Freigeben über


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

Wert
Regel-ID CA2263
Titel Generische Überladung bevorzugen, wenn der Typ bekannt ist
Kategorie Verwendung
Fix führt oder führt nicht zur Unterbrechung Nicht unterbrechend
Standardmäßig in .NET 9 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 sauber er und typsichereren Code mit verbesserten Kompilierungszeitprüfungen.

Behandeln von Verstößen

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

Beispiel

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 korrigiert 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

Um die Regel für eine Datei, einen Ordner oder ein Projekt zu deaktivieren, legen Sie den Schweregrad in der Konfigurationsdatei auf none fest.

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

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