Delen via


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".

Zie ook