Freigeben über


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 = truefestgelegt 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 = truefestlegen, wird die Eigenschaft noch weiter vereinfacht (auch wenn Sie IDE0027 auf csharp_style_expression_bodied_accessors = falsefestlegen):

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.

Siehe auch