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

Właściwości Wartość
Identyfikator reguły IDE0025
Stanowisko Używanie treści wyrażenia dla właściwości
Kategoria Styl
Podkategorii Reguły języka (składowe wyrażeń)
Odpowiednie języki C#
Opcje csharp_style_expression_bodied_properties

Omówienie

Ta reguła stylu dotyczy używania treści wyrażeń w porównaniu z ciałami blokowymi 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łaściwości 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 Preferuj jednostki blokowe dla właściwości
Wartość opcji domyślnej 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 a IDE0027

Ta reguła, IDE0025, i IDE0027 (Użyj treści wyrażenia dla metod dostępu) są bardzo podobne. IDE0025 dotyczy nieruchomości jako całości, podczas gdy IDE0027 dotyczy w szczególności 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, kończy się właściwością, która wygląda następująco:

public int TemperatureF
{
    get => _temp;
}

Jeśli jednak ustawiono IDE0025csharp_style_expression_bodied_properties = truewartość , właściwość jest jeszcze bardziej uproszczona (nawet jeśli ustawiono wartość IDE0027csharp_style_expression_bodied_accessors = false):

public int TemperatureF => _temp;

W przypadku właściwości read-write różnica staje się nieco bardziej widoczna, ponieważ właściwość nie może być zapisywana w sposób bodied wyrażenia (ponieważ składa się z więcej niż jednego wiersza). Więc nawet jeśli IDE0025 jest ustawiona na csharp_style_expression_bodied_properties = true, nadal kończy się nawiasami klamrowymi, czyli ciałem bloku.

W poniższych przykładach pokazano, jak wygląda właściwość 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 ważność dla kategorii Style na none w pliku konfiguracji.

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

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

Zobacz też