Expressietekst gebruiken voor eigenschappen (IDE0025)
Eigenschappen | Weergegeven als |
---|---|
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 expressieteksten versus blokteksten voor eigenschappen.
Opties
Stel de waarde van de gekoppelde optie voor deze regel in om op te geven of expressieteksten of blokteksten voor eigenschappen de voorkeur hebben en of expressie-lichamen de voorkeur hebben, of ze alleen de voorkeur hebben voor expressies met één regel.
Zie Optieindeling voor meer informatie over het configureren van opties.
csharp_style_expression_bodied_properties
Eigenschappen | Waarde | Beschrijving |
---|---|---|
Optienaam | csharp_style_expression_bodied_properties | |
Optiewaarden | true |
Voorkeur geven aan expressieteksten voor eigenschappen |
when_on_single_line |
Voorkeur geven aan expressieteksten voor eigenschappen wanneer ze één regel zijn | |
false |
Voorkeur aan blokteksten 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 (hoofdtekst van expressie gebruiken voor accessors) zijn vergelijkbaar. IDE0025
betreft de eigenschap als geheel, terwijl IDE0027
het specifiek gaat om de toegangsonderdelen van de eigenschap.
Voor een alleen-lezen eigenschap die simpelweg een waarde retourneert zonder berekeningen uit te csharp_style_expression_bodied_properties = false
IDE0027
csharp_style_expression_bodied_accessors = true
voeren, als IDE0025
deze is ingesteld op, eindigt u met een eigenschap die er als volgt uitziet:
public int TemperatureF
{
get => _temp;
}
Maar als u deze optie instelt IDE0025
csharp_style_expression_bodied_properties = true
, wordt de eigenschap nog verder vereenvoudigd (zelfs als u instelt IDE0027
op csharp_style_expression_bodied_accessors = false
):
public int TemperatureF => _temp;
Voor een eigenschap lezen/schrijven wordt het verschil iets duidelijker, omdat de eigenschap niet kan worden geschreven op een expressie-lichaam (omdat deze uit meer dan één regel bestaat). Dus zelfs als IDE0025
dit is ingesteld csharp_style_expression_bodied_properties = true
, eindigt u nog steeds met accolades, dat wil gezegd, een bloklichaam.
In de volgende voorbeelden ziet u hoe een eigenschap eruitziet met 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 none
ervan in op het configuratiebestand.
[*.{cs,vb}]
dotnet_diagnostic.IDE0025.severity = none
Als u alle regels voor codestijl wilt uitschakelen, stelt u de ernst voor de categorie Style
none
in op in het configuratiebestand.
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none
Zie Codeanalysewaarschuwingen onderdrukken voor meer informatie.