Ausdruckskörper für Eigenschaften verwenden (IDE0025)
Eigentum | Wert |
---|---|
Regel-ID | IDE0025 |
Titel | Ausdruckskörper für Eigenschaften verwenden |
Kategorie | Stil |
Unterkategorie | Sprachregeln (Ausdruckskörpermember) |
Anwendbare Sprachen | C# |
Optionen | csharp_style_expression_bodied_properties |
Überblick
Diese Stilregel bezieht sich auf die Verwendung von Ausdruckskörpern für Eigenschaften anstelle von Blockkörpern.
Optionen
Legen Sie den Wert der zugehörigen Option für diese Regel fest, um anzugeben, ob Ausdruckskörper oder Blockkörper für Eigenschaften bevorzugt werden und ob, wenn Ausdruckskörper bevorzugt werden, sie nur für Einzelzeilenausdrücke bevorzugt werden.
Weitere Informationen zum Konfigurieren von Optionen finden Sie unter Optionsformat.
csharp_style_expression_bodied_properties
Eigentum | Wert | Beschreibung |
---|---|---|
Optionsname | csharp_style_expression_bodied_properties | |
Optionswerte | true |
Ausdruckskörper für Eigenschaften bevorzugen |
when_on_single_line |
Ausdruckskörper für Eigenschaften bevorzugen, wenn diese einzeilig sind | |
false |
Blocktexte werden für Eigenschaften bevorzugt | |
Standardoptionenwert | true |
// csharp_style_expression_bodied_properties = true
public int Age => _age;
// csharp_style_expression_bodied_properties = false
public int Age { get { return _age; }}
Diese Regel im Vergleich zu IDE0027
Diese Regel, IDE0025
und IDE0027 (Ausdruckstext für Zugriffsmethoden verwenden) sind sehr ähnlich. IDE0025
betrifft das Eigentum als Ganzes, während IDE0027
insbesondere die Accessorteile der Immobilie betreffen.
Bei einer schreibgeschützten Eigenschaft, die einfach einen Wert ohne Berechnung zurückgibt, wenn IDE0025
auf csharp_style_expression_bodied_properties = false
festgelegt ist, aber IDE0027
auf csharp_style_expression_bodied_accessors = true
festgelegt ist, enden Sie mit einer Eigenschaft, die wie folgt aussieht:
public int TemperatureF
{
get => _temp;
}
Wenn Sie jedoch IDE0025
auf csharp_style_expression_bodied_properties = true
festlegen, wird die Eigenschaft noch weiter vereinfacht (auch wenn Sie IDE0027
auf csharp_style_expression_bodied_accessors = false
festlegen):
public int TemperatureF => _temp;
Bei einer Lese-/Schreibeigenschaft wird der Unterschied etwas deutlicher, da die Eigenschaft nicht in einer Ausdrucksform ausgedrückt werden kann (da sie aus mehr als einer Zeile besteht). Selbst wenn IDE0025
auf csharp_style_expression_bodied_properties = true
festgelegt ist, enden Sie trotzdem mit geschweiften Klammern, d. h. einem Blocktextkörper.
Die folgenden Beispiele zeigen, wie eine Eigenschaft mit verschiedenen Kombinationen der beiden Optionen aussieht.
// csharp_style_expression_bodied_properties = false
// csharp_style_expression_bodied_accessors = true
public int TemperatureB
{
get => _temp;
}
// csharp_style_expression_bodied_properties = true
// csharp_style_expression_bodied_accessors = true (or false)
public int TemperatureC => _temp;
// csharp_style_expression_bodied_properties = true (or false)
// csharp_style_expression_bodied_accessors = true
public int TemperatureD
{
get => _temp;
set => _temp = value;
}
// csharp_style_expression_bodied_properties = true
// csharp_style_expression_bodied_accessors = false
public int TemperatureE
{
get
{
return _temp;
}
set
{
_temp = value;
}
}
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 IDE0025
// The code that's violating the rule is on this line.
#pragma warning restore IDE0025
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.IDE0025.severity = none
Um alle Codestilregeln zu deaktivieren, legen Sie den Schweregrad für die Kategorie Style
in der Konfigurationsdateiauf none
fest.
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none
Weitere Informationen finden Sie unter So unterdrücken Sie Codeanalysewarnungen.