Udostępnij za pośrednictwem


Używanie treści wyrażenia dla właściwości (IDE0025)

Własność Wartość
identyfikator reguły IDE0025
Tytuł Użyj ciała wyrażeniowego dla właściwości
Kategoria Styl
podkategorii Reguły języka (składowe wyrażeń)
języki mające zastosowanie C#
opcje csharp_style_expression_bodied_properties

Przegląd

Ta reguła stylu dotyczy używania struktur wyrażeń a struktur blokowych dla właściwości.

Opcje

Ustaw wartość skojarzonej opcji dla tej reguły, aby określić, czy jednostki wyrażeń lub jednostki blokowe dla właściwości są preferowane, a jeśli jednostki wyrażeń są preferowane, czy są preferowane tylko dla wyrażeń jednowierszowych.

Aby uzyskać więcej informacji na temat konfigurowania opcji, zobacz Format opcji.

csharp_style_expression_bodied_properties

Własność Wartość Opis
nazwa opcji csharp_style_expression_bodied_properties
wartości opcji true Preferuj jednostki wyrażeń dla właściwości
when_on_single_line Preferuj jednostki wyrażeń dla właściwości, gdy będą one pojedynczym wierszem
false Należy preferować ciała blokowe dla właściwości
domyślna wartość opcji true
// csharp_style_expression_bodied_properties = true
public int Age => _age;

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

Ta reguła w porównaniu z IDE0027

Ta reguła, IDE0025i IDE0027 (Używanie treści wyrażeń dla metod dostępu) są bardzo podobne. IDE0025 dotyczy nieruchomości jako całości, podczas gdy IDE0027 dotyczy konkretnie części akcesoriów nieruchomości.

W przypadku właściwości tylko do odczytu, która po prostu zwraca wartość bez wykonywania żadnych obliczeń, jeśli IDE0025 jest ustawiona na csharp_style_expression_bodied_properties = false, ale IDE0027 jest ustawiona na csharp_style_expression_bodied_accessors = true, otrzymujesz właściwość, która wygląda następująco:

public int TemperatureF
{
    get => _temp;
}

Jeśli jednak ustawisz IDE0025 na wartość csharp_style_expression_bodied_properties = true, właściwość zostanie jeszcze bardziej uproszczona (nawet jeśli ustawisz IDE0027 na wartość csharp_style_expression_bodied_accessors = false):

public int TemperatureF => _temp;

W przypadku właściwości do odczytu i zapisu różnica staje się nieco bardziej widoczna, ponieważ właściwość nie może być zapisywana w formie wyrażenia (ponieważ składa się z więcej niż jednej linii). Więc nawet jeśli IDE0025 jest ustawiona na csharp_style_expression_bodied_properties = true, wciąż masz na myśli nawias klamrowy, czyli ciało blokowe.

W poniższych przykładach pokazano, jak wygląda atrybut z różnymi kombinacjami tych dwóch opcji.

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

Pomijanie ostrzeżenia

Jeśli chcesz pominąć tylko jedno naruszenie, dodaj dyrektywy preprocesora do pliku źródłowego, aby wyłączyć, a następnie ponownie włączyć regułę.

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

Aby wyłączyć regułę dla pliku, folderu lub projektu, ustaw jego ważność na none w pliku konfiguracji .

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

Aby wyłączyć wszystkie reguły stylu kodu, ustaw poziom ważności dla kategorii Style na none w pliku konfiguracyjnym .

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

Aby uzyskać więcej informacji, zobacz Jak pominąć ostrzeżenia analizy kodu.

Zobacz też