Condividi tramite


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.

Vedere anche