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 IDE0025
csharp_style_expression_bodied_properties = true
wartość , właściwość jest jeszcze bardziej uproszczona (nawet jeśli ustawiono wartość IDE0027
csharp_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.