Använd uttrycksform för egenskaper (IDE0025)
Egenskap | Värde |
---|---|
Regel-ID | IDE0025 |
Rubrik | Använd uttrycksform för egenskaper |
Kategori | Stil |
underkategori | Språkregler (uttrycksbaserade element) |
Tillämpliga språk | C# |
alternativ | csharp_style_expression_bodied_properties |
Överblick
Den här formatregeln gäller användningen av uttryckskroppar jämfört med blockkroppar för egenskaper.
Alternativ
Ange värdet för det associerade alternativet för den här regeln för att ange om uttryckskroppar eller blockkroppar för egenskaper ska föredras, och om uttryckskroppar föredras, om de endast föredras för enradsuttryck.
Mer information om hur du konfigurerar alternativ finns i Alternativformat.
csharp_style_expression_bodied_properties
Egenskap | Värde | Beskrivning |
---|---|---|
Alternativnamn | csharp_style_expression_bodied_properties | |
Alternativvärden | true |
Föredra uttryckskroppar för egenskaper |
when_on_single_line |
Föredrar uttryckskroppar för egenskaper när de ska vara en enda rad | |
false |
Föredrar blockkroppar för egenskaper | |
standardalternativvärde | true |
// csharp_style_expression_bodied_properties = true
public int Age => _age;
// csharp_style_expression_bodied_properties = false
public int Age { get { return _age; }}
Den här regeln jämfört med IDE0027
Den här regeln, IDE0025
, och IDE0027 (Använd uttrycksform för accessorer),, är mycket lika.
IDE0025
avser fastigheten som helhet, medan IDE0027
särskilt avser egendomens tillbehörsdelar.
För en skrivskyddad egenskap som helt enkelt returnerar ett värde utan att göra någon beräkning, om IDE0025
är inställd på csharp_style_expression_bodied_properties = false
men IDE0027
är inställd på csharp_style_expression_bodied_accessors = true
, får du en egenskap som ser ut så här:
public int TemperatureF
{
get => _temp;
}
Men om du anger IDE0025
till csharp_style_expression_bodied_properties = true
förenklas egenskapen ytterligare (även om du anger IDE0027
till csharp_style_expression_bodied_accessors = false
):
public int TemperatureF => _temp;
För en läs- och skrivbar egenskap blir skillnaden lite tydligare, eftersom egenskapen inte kan skrivas som en expressionskropp (eftersom den består av mer än en rad). Så även om IDE0025
är inställd på csharp_style_expression_bodied_properties = true
, får du fortfarande klammerparenteser, det vill ex. en blockkropp.
I följande exempel visas hur en egenskap ser ut med olika kombinationer av de två valen.
// 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;
}
}
Undertryck en varning
Om du bara vill förhindra en enda överträdelse lägger du till förprocessordirektiv i källfilen för att inaktivera och återaktiverar sedan regeln.
#pragma warning disable IDE0025
// The code that's violating the rule is on this line.
#pragma warning restore IDE0025
Om du vill inaktivera regeln för en fil, mapp eller ett projekt anger du dess allvarlighetsgrad till none
i konfigurationsfilen.
[*.{cs,vb}]
dotnet_diagnostic.IDE0025.severity = none
Om du vill inaktivera alla regler i kodformat anger du allvarlighetsgraden för kategorin Style
till none
i konfigurationsfilen .
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none
Mer information finns i Så här utelämnar du kodanalysvarningar.