Share via


Använda uttryckstext för egenskaper (IDE0025)

Property Värde
Regel-ID IDE0025
Rubrik Använda uttryckstext för egenskaper
Kategori Format
Underkategori Språkregler (uttrycksbaserade medlemmar)
Tillämpliga språk C#
Alternativ csharp_style_expression_bodied_properties

Översikt

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

Property Värde beskrivning
Alternativnamn csharp_style_expression_bodied_properties
Alternativvärden true Föredrar 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 uttryckstext för accessorer) är mycket lika. IDE0025 avser egendomen som helhet, medan IDE0027 det särskilt gäller 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ällt på csharp_style_expression_bodied_properties = false men IDE0027 är inställt 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 ):csharp_style_expression_bodied_accessors = false

public int TemperatureF => _temp;

För en skrivskyddad egenskap blir skillnaden lite tydligare eftersom egenskapen inte kan skrivas på ett uttrycksfylligt sätt (eftersom den består av mer än en rad). Så även om IDE0025 är inställt på csharp_style_expression_bodied_properties = true, hamnar du fortfarande med klammerparenteser, dvs en blockkropp.

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

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

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

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

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

Se även