Sdílet prostřednictvím


Použijte tělo výrazu pro vlastnosti (IDE0025)

Vlastnost Hodnota
Identifikátor pravidla IDE0025
název Použijte tělo výrazu pro vlastnosti
kategorie Styl
podkategorie Jazyková pravidla (členy s výrazovým tělem)
příslušné jazyky C#
Možnosti csharp_style_expression_bodied_properties

Přehled

Toto pravidlo stylu se týká použití těl výrazů versus blokových těl pro vlastnosti.

Možnosti

Nastavte hodnotu přidružené možnosti pro toto pravidlo a určete, zda jsou u vlastností upřednostňována těla výrazů nebo bloková těla a pokud jsou výrazy upřednostňovány, zda jsou preferovány pouze pro jednořádkové výrazy.

Další informace o konfiguraci možností naleznete v tématu Formát možnosti.

csharp_style_expression_bodied_properties

Vlastnost Hodnota Popis
název možnosti csharp_style_expression_bodied_properties
hodnoty možností true Upřednostnit těla výrazů pro vlastnosti
when_on_single_line Upřednostněte výrazová těla pro vlastnosti, pokud budou jedním řádkem.
false Upřednostnit blokové tělo pro vlastnosti
výchozí hodnota možnosti true
// csharp_style_expression_bodied_properties = true
public int Age => _age;

// csharp_style_expression_bodied_properties = false
public int Age { get { return _age; }}

Toto pravidlo versus IDE0027

Toto pravidlo, IDE0025a IDE0027 (použití textu výrazu pro přístupové objekty) jsou velmi podobné. IDE0025 se týká nemovitosti jako celku, zatímco IDE0027 se týká zejména přistupných částí nemovitosti.

Pro vlastnost určenou pouze pro čtení, která jednoduše vrátí hodnotu bez provedení výpočtu, pokud je IDE0025 nastavena na csharp_style_expression_bodied_properties = false, ale IDE0027 je nastavena na csharp_style_expression_bodied_accessors = true, výsledkem bude vlastnost, která vypadá takto:

public int TemperatureF
{
    get => _temp;
}

Pokud ale nastavíte IDE0025 na csharp_style_expression_bodied_properties = true, tato vlastnost se ještě více zjednoduší (i když nastavíte IDE0027 na csharp_style_expression_bodied_accessors = false):

public int TemperatureF => _temp;

U vlastnosti pro čtení i zápis se rozdíl stává o něco zřetelnější, protože tuto vlastnost nelze vyjádřit v podobě s využitím výrazového těla (protože se skládá z více než jednoho řádku). Takže i když je IDE0025 nastaveno na csharp_style_expression_bodied_properties = true, stále skončíte se složenými závorkami, tj. blokovým tělem.

Následující příklady ukazují, jak vlastnost vypadá s různými kombinacemi těchto dvou možností.

// 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;
    }
}

Potlačení upozornění

Pokud chcete potlačit pouze jedno porušení, přidejte do zdrojového souboru direktivy preprocesoru, abyste pravidlo zakázali a znovu povolili.

#pragma warning disable IDE0025
// The code that's violating the rule is on this line.
#pragma warning restore IDE0025

Chcete-li pravidlo pro soubor, složku nebo projekt zakázat, nastavte jeho závažnost na none v konfiguračním souboru .

[*.{cs,vb}]
dotnet_diagnostic.IDE0025.severity = none

Chcete-li zakázat všechna pravidla stylu kódu, nastavte závažnost pro kategorii Style na none v konfiguračním souboru .

[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none

Další informace naleznete v tématu Jak potlačit upozornění analýzy kódu.

Viz také