Strukturfelder schreibbar machen (IDE0064)
Eigentum | Wert |
---|---|
Regel-ID | IDE0064 |
Titel | Strukturfelder schreibbar machen |
Kategorie | CodeQuality |
Unterkategorie | Sprachregeln (Modifiziererpräferenzen) |
Anwendbare Sprachen | C# |
Überblick
Diese Regel erkennt Strukturen, die mindestens ein readonly
Feld enthalten und auch eine Zuordnung zu this
außerhalb des Konstruktors vornehmen. Die Regel empfiehlt, readonly
-Felder in beschreibbare Felder umzuwandeln. Das Markieren solcher Strukturfelder als readonly
kann zu unerwartetem Verhalten führen, da sich der dem Feld zugewiesene Wert ändern kann, wenn this
außerhalb des Konstruktors zugewiesen wird.
Optionen
Diese Regel enthält keine zugehörigen Codeformatoptionen.
Beispiel
// 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);
}
}
Unterdrücken einer Warnung
Wenn Sie nur einen einzelnen Verstoß unterdrücken möchten, fügen Sie Ihrer Quelldatei Präprozessordirektiven hinzu, um die Regel zu deaktivieren und dann erneut zu aktivieren.
#pragma warning disable IDE0064
// The code that's violating the rule is on this line.
#pragma warning restore IDE0064
Um die Regel für eine Datei, einen Ordner oder ein Projekt zu deaktivieren, legen Sie den Schweregrad in der Konfigurationsdateiauf none
fest.
[*.{cs,vb}]
dotnet_diagnostic.IDE0064.severity = none
Um diese gesamte Regelkategorie zu deaktivieren, legen Sie den Schweregrad für die Kategorie auf none
in der Konfigurationsdateifest.
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-CodeQuality.severity = none
Weitere Informationen finden Sie unter So unterdrücken Sie Codeanalysewarnungen.