Freigeben über


Ausdruckskörper für Eigenschaften verwenden (IDE0025)

Eigenschaft Wert
Regel-ID IDE0025
Titel Ausdruckskörper für Eigenschaften verwenden
Kategorie Stil
Unterkategorie Sprachregeln (Ausdruckskörpermember)
Gültige Sprachen C#
Optionen csharp_style_expression_bodied_properties

Übersicht

Diese Stilregel bezieht sich auf die Verwendung von Ausdruckskörpern für Eigenschaften anstelle von Blockkörpern.

Optionen

Geben Sie durch Festlegung der zugehörigen Option für diese Regel an, ob Ausdruckskörper oder Blocktextkörper für Eigenschaften bevorzugt werden, und wenn Ausdruckskörper bevorzugt werden, ob sie nur für einzeilige Ausdrücke bevorzugt werden.

Weitere Informationen zum Konfigurieren von Optionen finden Sie unter Optionsformat.

csharp_style_expression_bodied_properties

Eigenschaft Wert Beschreibung
Name der Option 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
Standardoptionswert 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, in der Erwägung, dass IDE0027 es sich insbesondere um die Zugriffsmethodenteile der Eigenschaft handelt.

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 = 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 Ausdruckskörperform geschrieben 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

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 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 Konfigurationsdatei auf none fest.

[*.{cs,vb}]
dotnet_diagnostic.IDE0025.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.

Siehe auch