Share via


Strukturált mezők írhatóvá tétele (IDE0064)

Tulajdonság Érték
Szabályazonosító IDE0064
Cím Strukturált mezők írhatóvá tétele
Kategória CodeQuality
Alkategória Nyelvi szabályok (módosító beállítások)
Alkalmazandó nyelvek C#

Áttekintés

Ez a szabály észleli azokat a szerkezeteket, amelyek egy vagy több readonly mezőt tartalmaznak, és a konstruktoron kívüli hozzárendelést this is tartalmaznak. A szabály azt javasolja, hogy a mezőket csak nem olvashatóvá, azaz írhatóvá alakítsa readonly . Az ilyen strukturált mezők readonly megjelölése váratlan viselkedéshez vezethet, mivel a mezőhöz rendelt érték megváltozhat, ha this a konstruktoron kívül van hozzárendelve.

Beállítások

Ez a szabály nem rendelkezik társított kódstílus-beállításokkal.

Példa

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

Figyelmeztetés mellőzése

Ha csak egyetlen szabálysértést szeretne letiltani, adjon hozzá előfeldolgozói irányelveket a forrásfájlhoz a szabály letiltásához és újbóli engedélyezéséhez.

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

Ha le szeretné tiltani egy fájl, mappa vagy projekt szabályát, állítsa a súlyosságát none a konfigurációs fájlban.

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

A teljes szabálykategória letiltásához állítsa a kategória súlyosságát none a konfigurációs fájlban.

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

További információ: Kódelemzési figyelmeztetések mellőzése.

Lásd még