Share via


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, IDE0025en 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 = falseIDE0027csharp_style_expression_bodied_accessors = truevoeren, 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 IDE0025csharp_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 Stylenone in op in het configuratiebestand.

[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none

Zie Codeanalysewaarschuwingen onderdrukken voor meer informatie.

Zie ook