Delen via


Schrijfbare structvelden maken (IDE0064)

(Vastgoed or Eigendom, depending on the context) Waarde
Regel-ID IDE0064
titel Schrijfbare structvelden maken
Categorie CodeQuality
subcategorie Taalregels (wijzigingsvoorkeuren)
Toepasselijke talen C#

Overzicht

Met deze regel worden structs gedetecteerd die een of meer readonly velden bevatten en die ook een toewijzing bevatten aan this buiten de constructor. De regel raadt aan om readonly velden om te zetten naar niet-alleen-lezen, dus beschrijfbaar. Het markeren van dergelijke structvelden 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 preprocessorrichtlijnen 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 ervan 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 voor de categorie in op none in het configuratiebestand.

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

Voor meer informatie, zie Hoe codeanalysewaarschuwingen te onderdrukken.

Zie ook