Beschreibbare Strukturfelder erstellen (IDE0064)
Eigenschaft | Wert |
---|---|
Regel-ID | IDE0064 |
Titel | Beschreibbare Strukturfelder erstellen |
Kategorie | CodeQuality |
Unterkategorie | Sprachregeln (Einstellungen für Modifizierer) |
Gültige Sprachen | C# |
Übersicht
Diese Regel erkennt Strukturen, die mindestens ein readonly
-Feld sowie eine Zuweisung zu this
außerhalb des Konstruktors enthalten. Die Regel empfiehlt, readonly
-Felder in beschreibbare Felder umzuwandeln. Wenn diese Strukturfelder als readonly
gekennzeichnet werden, kann dies zu unerwartetem Verhalten führen, weil der dem Feld zugewiesene Wert sich ändern kann, wenn this
außerhalb des Konstruktors zugewiesen ist.
Optionen
Dieser Regel sind keine Codeformatoptionen zugeordnet.
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
Um nur eine einzelne Verletzung zu unterdrücken, fügen Sie der Quelldatei Präprozessoranweisungen hinzu, um die Regel zu deaktivieren und dann wieder 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 Konfigurationsdatei auf none
fest.
[*.{cs,vb}]
dotnet_diagnostic.IDE0064.severity = none
Um diese gesamte Kategorie von Regeln zu deaktivieren, legen Sie den Schweregrad für die Kategorie in der Konfigurationsdatei auf none
fest.
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-CodeQuality.severity = none
Weitere Informationen finden Sie unter Vorgehensweise: Unterdrücken von Codeanalyse-Warnungen.