Expressietekst gebruiken voor eigenschappen (IDE0025)
Eigenschap | Waarde |
---|---|
Regel-ID | IDE0025 |
titel | Expressietekst gebruiken voor eigenschappen |
categorie | Stijl |
subcategorie | Taalregels (leden met expressies) |
Toepasselijke talen | C# |
opties | csharp_style_expression_bodied_properties |
Overzicht
Deze stijlregel betreft het gebruik van expressielichamen versus bloklichamen voor eigenschappen.
Opties
Stel de waarde van de gekoppelde optie voor deze regel in om op te geven of expressielichamen of bloklichamen voor eigenschappen de voorkeur hebben, en als expressielichamen de voorkeur hebben, of ze alleen de voorkeur hebben voor enkelregelige expressies.
Zie Option-indelingvoor meer informatie over het configureren van opties.
csharp_style_expression_bodied_properties
Eigenschap | Waarde | Beschrijving |
---|---|---|
optienaam | csharp_style_expression_bodied_properties | |
optiewaarden | true |
Geef de voorkeur aan expressielichamen voor eigenschappen |
when_on_single_line |
Geef de voorkeur aan expressie-lichamen voor eigenschappen als ze uit één regel bestaan. | |
false |
Geef de voorkeur aan bloklijven voor eigenschappen | |
standaardoptiewaarde | true |
// csharp_style_expression_bodied_properties = true
public int Age => _age;
// csharp_style_expression_bodied_properties = false
public int Age { get { return _age; }}
Deze regel versus IDE0027
Deze regel, IDE0025
, en IDE0027 (Gebruik een expressie body voor accessors) zijn zeer vergelijkbaar.
IDE0025
betreft de eigenschap als geheel, terwijl IDE0027
specifiek betrekking heeft op de toegangsdelen van de eigenschap.
Voor een alleen-lezen eigenschap die eenvoudigweg een waarde retourneert zonder berekeningen uit te voeren, als IDE0025
is ingesteld op csharp_style_expression_bodied_properties = false
, maar IDE0027
is ingesteld op csharp_style_expression_bodied_accessors = true
, eindigt u met een eigenschap die er als volgt uitziet:
public int TemperatureF
{
get => _temp;
}
Maar als u IDE0025
instelt op csharp_style_expression_bodied_properties = true
, wordt de eigenschap nog verder vereenvoudigd (zelfs als u IDE0027
instelt op csharp_style_expression_bodied_accessors = false
):
public int TemperatureF => _temp;
Voor een lees-schrijf eigenschap wordt het verschil iets duidelijker, omdat de eigenschap niet op een expressie-gestuurd manier geschreven kan worden (omdat het uit meer dan één regel bestaat). Dus zelfs als IDE0025
is ingesteld op csharp_style_expression_bodied_properties = true
, eindigt u nog steeds met accolades, dat wil gezegd, een bloklichaam.
In de volgende voorbeelden wordt getoond hoe een eigenschap eruitziet bij verschillende combinaties van de twee opties.
// 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;
}
}
Een waarschuwing onderdrukken
Als u slechts één schending wilt onderdrukken, voegt u preprocessorrichtlijnen toe aan uw bronbestand om de regel uit te schakelen en vervolgens opnieuw in te schakelen.
#pragma warning disable IDE0025
// The code that's violating the rule is on this line.
#pragma warning restore IDE0025
Als u de regel voor een bestand, map of project wilt uitschakelen, stelt u de ernst ervan in op none
in het configuratiebestand.
[*.{cs,vb}]
dotnet_diagnostic.IDE0025.severity = none
Als u alle regels voor de codestijl wilt uitschakelen, stelt u de ernst voor de categorie Style
in op none
in het configuratiebestand.
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none
Voor meer informatie, zie "Codeanalysewaarschuwingen onderdrukken".