Share via


Struct-velden beschrijfbaar maken (IDE0064)

Eigenschap Waarde
Regel-id IDE0064
Titel Struct-velden schrijfbaar maken
Categorie CodeQuality
Subcategorie Taalregels (wijzigingsvoorkeuren)
Toepasselijke talen C#

Overzicht

Met deze regel worden structs gedetecteerd die een of meer readonly velden bevatten en ook een toewijzing naar this buiten de constructor bevatten. De regel raadt aan velden te converteren readonly naar niet-alleen-lezen, dat wil gezegd, beschrijfbaar. Het markeren van dergelijke struct-velden als readonly kan leiden tot onverwacht gedrag, omdat de waarde die aan het veld is toegewezen, kan veranderen wanneer this buiten de constructor wordt toegewezen.

Opties

Deze regel heeft geen gekoppelde opties voor codestijl.

Voorbeeld

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

Een waarschuwing onderdrukken

Als u slechts één schending wilt onderdrukken, voegt u preprocessor-instructies toe aan uw bronbestand om de regel uit te schakelen en vervolgens opnieuw in te schakelen.

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

Als u de regel voor een bestand, map of project wilt uitschakelen, stelt u de ernst in op none in het configuratiebestand.

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

Als u deze hele categorie regels wilt uitschakelen, stelt u de ernst van de categorie in op none in het configuratiebestand.

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

Zie Waarschuwingen voor codeanalyse onderdrukken voor meer informatie.

Zie ook