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.