Verwenden des Musterabgleichs zur Vermeidung einer Überprüfung vom Typ „is“ gefolgt von einer Umwandlung (IDE0020 und IDE0038)
In diesem Artikel werden zwei verwandte Regeln beschrieben: IDE0020
und IDE0038
.
Eigenschaft | 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) |
Gültige Sprachen | C# |
Optionen | csharp_style_pattern_matching_over_is_with_cast_check |
Eigenschaft | 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) |
Gültige Sprachen | C# |
Optionen | csharp_style_pattern_matching_over_is_with_cast_check |
Übersicht
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
: Umwandlungsausdruck wird in einer lokalen Variable gespeichert. Beispielsweise speichertif (o is int) { var i = (int)o; }
das Ergebnis von(int)o
in einer lokalen Variable.IDE0038
: Umwandlungsausdruck wird nicht in einer lokalen Variable gespeichert. Beispielsweise speichertif (o is int) { if ((int)o == 1) { ... } }
das Ergebnis von(int)o
nicht in einer lokalen Variable.
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
Eigenschaft | 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 |
Die Regel wird deaktiviert. | |
Standardoptionswert | 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
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 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 Konfigurationsdatei auf 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 Vorgehensweise: Unterdrücken von Codeanalyse-Warnungen.