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 langage (préférences de modificateur)
Langages applicables C#

Vue d’ensemble

Cette règle détecte les structs qui contiennent un ou plusieurs champs readonly et contiennent également une affectation à this en dehors du constructeur. La règle recommande de convertir les champs readonly en non-lecture seule, c’est-à-dire accessibles en écriture. Le marquage de ces champs de struct comme readonly peut entraîner un comportement inattendu, car la valeur affectée au champ peut changer quand this est attribué en dehors du constructeur.

Options

Cette règle n’a pas d’option de style de code associée.

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

Supprimer un avertissement

Si vous voulez supprimer une seule violation, ajoutez des directives de préprocesseur à votre fichier source pour désactiver et réactiver la règle.

#pragma warning disable IDE0064
// The code that's violating the rule is on this line.
#pragma warning restore IDE0064

Pour désactiver la règle sur un fichier, un dossier ou un projet, définissez sa gravité sur none dans le fichier de configuration.

[*.{cs,vb}]
dotnet_diagnostic.IDE0064.severity = none

Pour désactiver la catégorie entière des règles, définissez la gravité de la catégorie sur none dans le fichier de configuration.

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

Pour plus d’informations, consultez Comment supprimer les avertissements de l’analyse de code.

Voir aussi