Usare il corpo dell'espressione per le proprietà (IDE0025)
Proprietà | valore |
---|---|
ID regola | IDE0025 |
Titolo | Usare il corpo dell'espressione per le proprietà |
Categoria | Style |
Sottocategoria | Regole del linguaggio (membri con corpo di espressione) |
Linguaggi applicabili | C# |
Opzioni | csharp_style_expression_bodied_properties |
Panoramica
Questa regola di stile riguarda l'uso dei corpi delle espressioni rispetto ai corpi di blocco per le proprietà.
Opzioni
Impostare il valore dell'opzione associata per questa regola per specificare se i corpi delle espressioni o i corpi di blocco per le proprietà sono preferiti e se i corpi delle espressioni sono preferiti, indipendentemente dal fatto che siano preferiti solo per le espressioni a riga singola.
Per altre informazioni sulla configurazione delle opzioni, vedere Formato delle opzioni.
csharp_style_expression_bodied_properties
Proprietà | Valore | Descrizione |
---|---|---|
Nome opzione | csharp_style_expression_bodied_properties | |
Valori delle opzioni | true |
Preferisce i corpi delle espressioni per le proprietà |
when_on_single_line |
Preferisce i corpi di espressione per le proprietà quando saranno una singola riga | |
false |
Preferisce corpi di blocco per le proprietà | |
Valore dell'opzione predefinito | true |
// csharp_style_expression_bodied_properties = true
public int Age => _age;
// csharp_style_expression_bodied_properties = false
public int Age { get { return _age; }}
Questa regola e IDE0027
Questa regola, IDE0025
e IDE0027 (Usare il corpo dell'espressione per le funzioni di accesso) sono molto simili. IDE0025
riguarda la proprietà nel suo complesso, mentre IDE0027
riguarda in particolare le parti della funzione di accesso della proprietà .
Per una proprietà di sola lettura che restituisce semplicemente un valore senza eseguire alcun calcolo, se IDE0025
è impostato su ma IDE0027
è impostato csharp_style_expression_bodied_properties = false
su csharp_style_expression_bodied_accessors = true
, si ottiene una proprietà simile alla seguente:
public int TemperatureF
{
get => _temp;
}
Tuttavia, se si imposta su IDE0025
, la proprietà viene semplificata ulteriormente (anche se impostata su csharp_style_expression_bodied_accessors = false
IDE0027
):csharp_style_expression_bodied_properties = true
public int TemperatureF => _temp;
Per una proprietà di lettura/scrittura, la differenza diventa un po' più evidente, perché la proprietà non può essere scritta in modo con corpo di espressione (perché è costituita da più righe). Quindi, anche se IDE0025
è impostato su csharp_style_expression_bodied_properties = true
, si finisce ancora con parentesi graffe, ovvero un corpo di blocco.
Negli esempi seguenti viene illustrato l'aspetto di una proprietà con varie combinazioni delle due opzioni.
// 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;
}
}
Eliminare un avviso
Se si desidera eliminare solo una singola violazione, aggiungere direttive del preprocessore al file di origine per disabilitare e quindi riabilitare la regola.
#pragma warning disable IDE0025
// The code that's violating the rule is on this line.
#pragma warning restore IDE0025
Per disabilitare la regola per un file, una cartella o un progetto, impostarne la gravità none
su nel file di configurazione.
[*.{cs,vb}]
dotnet_diagnostic.IDE0025.severity = none
Per disabilitare tutte le regole in stile codice, impostare la gravità per la categoria Style
su none
nel file di configurazione.
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none
Per altre informazioni, vedere Come eliminare gli avvisi di analisi del codice.