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.

Siehe auch