Använda uttryckstext för egenskaper (IDE0025)
Property | Värde |
---|---|
Regel-ID | IDE0025 |
Rubrik | Använda uttryckstext för egenskaper |
Kategori | Format |
Underkategori | Språkregler (uttrycksbaserade medlemmar) |
Tillämpliga språk | C# |
Alternativ | csharp_style_expression_bodied_properties |
Översikt
Den här stilregeln 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
Property | Värde | beskrivning |
---|---|---|
Alternativnamn | csharp_style_expression_bodied_properties | |
Alternativvärden | true |
Föredrar 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 uttryckstext för accessorer) är mycket lika. IDE0025
avser egendomen som helhet, medan IDE0027
det särskilt gäller 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ällt på csharp_style_expression_bodied_properties = false
men IDE0027
är inställt 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
):csharp_style_expression_bodied_accessors = false
public int TemperatureF => _temp;
För en skrivskyddad egenskap blir skillnaden lite tydligare eftersom egenskapen inte kan skrivas på ett uttrycksfylligt sätt (eftersom den består av mer än en rad). Så även om IDE0025
är inställt på csharp_style_expression_bodied_properties = true
, hamnar du fortfarande med klammerparenteser, dvs en blockkropp.
I följande exempel visas hur en egenskap ser ut med olika kombinationer av de två alternativen.
// 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;
}
}
Ignorera 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 i konfigurationsfilen.none
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none
Mer information finns i Så här utelämnar du kodanalysvarningar.