Rendre les champs de struct accessibles en écriture (IDE0064)

Propriété Value
Identificateur de la règle IDE0064
Titre Rendre les champs de struct accessibles en écriture
Catégorie CodeQuality
Sous-catégorie Règles de langue (préférences de modificateur)
Langues applicables C#

Vue d’ensemble

Cette règle détecte les structs qui contiennent un ou plusieurs readonly champs et contient également une assignation à l' this extérieur du constructeur. La règle recommande de convertir les readonly champs en non ReadOnly, c’est-à-dire en écriture. Le marquage de ces champs de struct comme ReadOnly peut entraîner un comportement inattendu, car la valeur assignée au champ peut changer lorsque this est assigné à l’extérieur du constructeur.

Exemple

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

Voir aussi