Utwórz pola struktury do zapisu (IDE0064)

Właściwość Wartość
Identyfikator zasady IDE0064
Tytuł Tworzenie pól struktury do zapisu
Kategoria CodeQuality
Subcategory (Podkategoria) Reguły języka (preferencje modyfikatora)
Odpowiednie języki C#

Omówienie

Ta reguła wykrywa struktury, które zawierają co najmniej jedno readonly pole, a także zawierają przypisanie poza this konstruktorem. Reguła zaleca konwertowanie readonly pól na tylko do odczytu, czyli zapisywalne. Oznaczanie takich pól struktury, które readonly mogą prowadzić do nieoczekiwanego zachowania, ponieważ wartość przypisana do pola może ulec zmianie po this przypisaniu poza konstruktorem.

Opcje

Ta reguła nie ma skojarzonych opcji stylu kodu.

Przykład

// 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);
    }
}

Pomijanie ostrzeżenia

Jeśli chcesz pominąć tylko jedno naruszenie, dodaj dyrektywy preprocesora do pliku źródłowego, aby wyłączyć, a następnie ponownie włączyć regułę.

#pragma warning disable IDE0064
// The code that's violating the rule is on this line.
#pragma warning restore IDE0064

Aby wyłączyć regułę dla pliku, folderu lub projektu, ustaw jego ważność na none w pliku konfiguracji.

[*.{cs,vb}]
dotnet_diagnostic.IDE0064.severity = none

Aby wyłączyć całą kategorię reguł, ustaw ważność kategorii na none w pliku konfiguracji.

[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-CodeQuality.severity = none

Aby uzyskać więcej informacji, zobacz Jak pominąć ostrzeżenia analizy kodu.

Zobacz też