Udělejte pole struktury zapisovatelnými (IDE0064)
Vlastnost | Hodnota |
---|---|
ID pravidla | IDE0064 |
název | Nastavení zapisovatelných polí struktury |
kategorie | CodeQuality |
podkategorie | Jazyková pravidla (modifikační předvolby) |
příslušné jazyky | C# |
Přehled
Toto pravidlo detekuje struktury, které obsahují jedno nebo více polí readonly
a přiřazení k this
mimo konstruktor. Pravidlo doporučuje převádět pole readonly
na nečtená pole, tj. zapisovatelná. Označení takových polí struktury jako readonly
může vést k neočekávanému chování, protože hodnota přiřazená k poli se může změnit při přiřazení this
mimo konstruktor.
Možnosti
Toto pravidlo nemá přidružené možnosti stylu kódu.
Příklad
// 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);
}
}
Potlačení upozornění
Pokud chcete potlačit pouze jedno porušení, přidejte do zdrojového souboru direktivy preprocesoru, abyste pravidlo zakázali a znovu povolili.
#pragma warning disable IDE0064
// The code that's violating the rule is on this line.
#pragma warning restore IDE0064
Chcete-li pravidlo pro soubor, složku nebo projekt zakázat, nastavte jeho závažnost na none
v konfiguračním souboru .
[*.{cs,vb}]
dotnet_diagnostic.IDE0064.severity = none
Chcete-li tuto celou kategorii pravidel zakázat, nastavte závažnost kategorie na none
v konfiguračním souboru .
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-CodeQuality.severity = none
Další informace naleznete v tématu Jak potlačit upozornění analýzy kódu.
Viz také
- pravidla pro styl psaní kódu
- referenční pravidla stylu kódu