Rendere scrivibili i campi struct (IDE0064)
Proprietà | Valore |
---|---|
ID regola | IDE0064 |
titolo | Rendere scrivibili i campi struct |
categoria | CodeQuality |
sottocategoria | Regole del linguaggio (preferenze del modificatore) |
lingue applicabili | C# |
Panoramica
Questa regola rileva gli struct che contengono uno o più campi readonly
e che contengono anche un'assegnazione a this
all'esterno del costruttore. La regola consiglia di convertire i campi readonly
da sola lettura a scrivibili. Contrassegnare tali campi struct come readonly
può causare un comportamento imprevisto, perché il valore assegnato al campo può cambiare quando this
viene assegnato all'esterno del costruttore.
Opzioni
Questa regola non include opzioni di stile del codice associate.
Esempio
// Code with violations
struct MyStruct
{
public readonly int Value;
public MyStruct(int value)
{
Value = value;
}
public void Test()
{
this = new MyStruct(5);
}
}
// Fixed code
struct MyStruct
{
public int Value;
public MyStruct(int value)
{
Value = value;
}
public void Test()
{
this = new MyStruct(5);
}
}
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 IDE0064
// The code that's violating the rule is on this line.
#pragma warning restore IDE0064
Per disabilitare la regola per un file, una cartella o un progetto, impostarne la gravità su none
nel file di configurazione .
[*.{cs,vb}]
dotnet_diagnostic.IDE0064.severity = none
Per disabilitare questa intera categoria di regole, impostare la gravità per la categoria su none
nel file di configurazione .
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-CodeQuality.severity = none
Per altre informazioni, vedere Come eliminare gli avvisi di analisi del codice.