Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel werden zwei verwandte Regeln, IDE0020
und IDE0038
beschrieben.
Eigentum | Wert |
---|---|
Regel-ID | IDE0020 |
Titel | Musterabgleich verwenden, um eine is -Überprüfung gefolgt von einer Umwandlung zu vermeiden (mit Variable) |
Kategorie | Stil |
Unterkategorie | Sprachregeln (Einstellungen für den Musterabgleich) |
Anwendbare Sprachen | C# |
Optionen | csharp_style_pattern_matching_over_is_with_cast_check |
Eigentum | Wert |
---|---|
Regel-ID | IDE0038 |
Titel | Musterabgleich verwenden, um eine is -Überprüfung gefolgt von einer Umwandlung zu vermeiden (ohne Variable) |
Kategorie | Stil |
Unterkategorie | Sprachregeln (Einstellungen für den Musterabgleich) |
Anwendbare Sprachen | C# |
Optionen | csharp_style_pattern_matching_over_is_with_cast_check |
Überblick
Diese Stilregel betrifft die Verwendung des Musterabgleichs von C#, z. B. o is int i
, anstelle einer is
-Überprüfung gefolgt von einer Umwandlung, wie z. B. if (o is int) { ... (int)o ... }
. Aktivieren Sie entweder IDE0020
oder IDE0038
– je nachdem, ob der Umwandlungsausdruck in einer separaten lokalen Variable gespeichert werden soll oder nicht:
-
IDE0020
: Cast-Ausdruck wird in einer lokalen Variablen gespeichert. Beispielsweise speichertif (o is int) { var i = (int)o; }
das Ergebnis von(int)o
in einer lokalen Variablen. -
IDE0038
: Cast-Ausdruck wird nicht in einer lokalen Variablen gespeichert. Beispielsweise speichertif (o is int) { if ((int)o == 1) { ... } }
das Ergebnis von(int)o
nicht in einer lokalen Variablen.
Optionen
Legen Sie den Wert der zugeordneten Option für diese Regel fest, um anzugeben, ob ein Musterabgleich oder eine is
-Überprüfung gefolgt von einer Typumwandlung bevorzugt wird.
Weitere Informationen zum Konfigurieren von Optionen finden Sie unter Optionsformat.
csharp_style_pattern_matching_over_is_with_cast_check
Eigentum | Wert | Beschreibung |
---|---|---|
Name der Option | csharp_style_pattern_matching_over_is_with_cast_check | |
Optionswerte | true |
Mustervergleich gegenüber is -Ausdrücken mit Typumwandlungen bevorzugen. |
false |
Deaktiviert die Regel. | |
Standardwert der Option | true |
// csharp_style_pattern_matching_over_is_with_cast_check = true
if (o is int i) {...}
// csharp_style_pattern_matching_over_is_with_cast_check = false
if (o is int) {var i = (int)o; ... }
Unterdrücken einer Warnung
Wenn Sie nur einen einzelnen Verstoß unterdrücken möchten, fügen Sie Ihrer Quelldatei Präprozessordirektiven hinzu, um die Regel zu deaktivieren und dann erneut zu aktivieren.
#pragma warning disable IDE0020 // Or IDE0038
// The code that's violating the rule is on this line.
#pragma warning restore IDE0020 // Or IDE0038
Um die Regel für eine Datei, einen Ordner oder ein Projekt zu deaktivieren, legen Sie den Schweregrad in der Konfigurationsdateiauf none
fest.
[*.{cs,vb}]
dotnet_diagnostic.IDE0020.severity = none
dotnet_diagnostic.IDE0038.severity = none
Um alle Regeln im Code-Stil zu deaktivieren, setzen Sie den Schweregrad für die Kategorie in der KonfigurationsdateiStyle
auf none
.
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none
Weitere Informationen finden Sie unter So unterdrücken Sie Codeanalysewarnungen.