Rendre les champs de struct accessibles en écriture (IDE0064)
Propriété | Valeur |
---|---|
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) |
langues applicables | C# |
Aperçu
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 champs non en lecture seule, c’est-à-dire modifiables. Le marquage de tels champs de struct comme readonly
peut entraîner un comportement inattendu, car la valeur affectée au champ peut changer lorsque this
est affecté en dehors du constructeur.
Options
Cette règle n’a aucune 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 souhaitez supprimer une seule violation, ajoutez des directives de préprocesseur à votre fichier source pour désactiver, puis réactivez 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 d’un fichier, d’un dossier ou d’un projet, définissez sa gravité sur none
dans le fichier de configuration .
[*.{cs,vb}]
dotnet_diagnostic.IDE0064.severity = none
Pour désactiver toute cette catégorie de 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 d’analyse du code.
Voir aussi
- règles de langage de style de code
- Référence sur les règles de style de code