Dela via


Använd uttrycksform för egenskaper (IDE0025)

Egenskap Värde
Regel-ID IDE0025
Rubrik Använd uttrycksform för egenskaper
Kategori Stil
underkategori Språkregler (uttrycksbaserade element)
Tillämpliga språk C#
alternativ csharp_style_expression_bodied_properties

Överblick

Den här formatregeln 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

Egenskap Värde Beskrivning
Alternativnamn csharp_style_expression_bodied_properties
Alternativvärden true Föredra 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 uttrycksform för accessorer),, är mycket lika. IDE0025 avser fastigheten som helhet, medan IDE0027 särskilt avser 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älld på csharp_style_expression_bodied_properties = false men IDE0027 är inställd 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 = trueförenklas egenskapen ytterligare (även om du anger IDE0027 till csharp_style_expression_bodied_accessors = false):

public int TemperatureF => _temp;

För en läs- och skrivbar egenskap blir skillnaden lite tydligare, eftersom egenskapen inte kan skrivas som en expressionskropp (eftersom den består av mer än en rad). Så även om IDE0025 är inställd på csharp_style_expression_bodied_properties = true, får du fortfarande klammerparenteser, det vill ex. en blockkropp.

I följande exempel visas hur en egenskap ser ut med olika kombinationer av de två valen.

// 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;
    }
}

Undertryck 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 none i konfigurationsfilen .

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

Mer information finns i Så här utelämnar du kodanalysvarningar.

Se även