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