Aracılığıyla paylaş


Yapı alanlarını yazılabilir hale getirme (IDE0064)

Mülk Değer
Kural ID IDE0064
Başlık Yapı alanlarını yazılabilir hale getirme
Kategori CodeQuality
Alt Kategori Dil kuralları (değiştirici tercihler)
Geçerli diller C#

Genel bakış

Bu kural, bir veya daha fazla readonly alanı içeren yapıları algılar ve oluşturucu dışında this ataması içerir. Kural, readonly alanların salt okunur olmayan, yani yazılabilir duruma dönüştürülmesini önerir. Bu tür yapı alanlarının readonly olarak işaretlenmesi beklenmeyen davranışlara yol açabilir çünkü this oluşturucunun dışında atandığında alana atanan değer değişebilir.

Seçenekler

Bu kuralın ilişkili kod stili seçeneği yoktur.

Örnek

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

Uyarıyı gizleme

Yalnızca tek bir ihlali engellemek istiyorsanız, kuralı devre dışı bırakmak ve sonra yeniden etkinleştirmek için kaynak dosyanıza ön işlemci yönergeleri ekleyin.

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

Bir dosya, klasör veya projenin kuralını devre dışı bırakmak için önem derecesini yapılandırma dosyasında none olarak ayarlayın.

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

Bu kural kategorisinin tamamını devre dışı bırakmak için, kategorinin önem derecesini yapılandırma dosyasında none olarak ayarlayın.

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

Daha fazla bilgi için bkz. Kod analizi uyarılarını gizleme.

Ayrıca bkz.