Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse zu wechseln.
In diesem Artikel werden zwei verwandte Regeln, IDE0020 und IDE0038beschrieben.
| 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)oin 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)onicht 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.