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, IDE0025
i 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.