Aracılığıyla paylaş


Gereksiz gizlemeyi kaldırma (IDE0079)

Mülk Değer
kural kimliği IDE0079
Başlık Gereksiz gizlemeyi kaldırma
Kategori CodeQuality
alt kategori Gereksiz kod kuralları (gizleme tercihleri)
Geçerli diller C# ve Visual Basic
Seçenekleri dotnet_remove_unnecessary_suppression_exclusions

Genel bakış

Bu kural, kaynakta gereksiz pragma ve SuppressMessageAttribute öznitelik gizlemelerini işaret eder.

Kaynak gizlemeler, kaynak kodun diğer bölümlerinde değil belirli yerlerde derleyici ve çözümleyici kurallarının ihlallerini bastırır. Bunları genellikle düzeltmeyi amaçlamadığınız hatalı pozitif sonuçları veya daha az önemli ihlalleri engellemek için kullanırsınız. Ancak, baskılamalar genellikle eskir. Hatalı pozitif sonuçları önlemek için bir kural düzeltildiyse veya kodunuzu yeniden düzenlediğinizde ve bunu yaptığınızda gizlemeleri yedekli hale getirirseniz bu durum oluşabilir. Bu kural, kaldırılabilen yedekli gizlemeleri tanımlamaya yardımcı olur.

Not

derlemekod stili kurallarını etkinleştirmeniz bile bu kural etkinleştirilmez. Yalnızca IDE'de görünür.

Örnek

using System.Diagnostics.CodeAnalysis;

class C1
{
    // Necessary pragma suppression
#pragma warning disable IDE0051 // IDE0051: Remove unused member
    private int UnusedMethod() => 0;
#pragma warning restore IDE0051

    // IDE0079: Unnecessary pragma suppression
#pragma warning disable IDE0051 // IDE0051: Remove unused member
    private int UsedMethod() => 0;
#pragma warning restore IDE0051

    public int PublicMethod() => UsedMethod();
}

class C2
{
    // Necessary SuppressMessage attribute suppression
    [SuppressMessage("CodeQuality", "IDE0051:Remove unused private members", Justification = "<Pending>")]
    private int _unusedField;

    // IDE0079: Unnecessary SuppressMessage attribute suppression
    [SuppressMessage("CodeQuality", "IDE0051:Remove unused private members", Justification = "<Pending>")]
    private int _usedField;

    public int PublicMethod2() => _usedField;
}

Seçenekler

Seçenekler, kuralın zorlamasını istediğiniz davranışı belirtir. Seçenekleri yapılandırma hakkında bilgi için bkz. Seçenek biçimi.

Not

option_name = value:severity biçiminde bir önem derecesi ayarlamak dotnet_remove_unnecessary_suppression_exclusions seçeneği için geçerli değildir ve bundan kaçınılmalıdır. Bunun yerine, ayrı bir giriş kullanarak önem derecesini belirtin, örneğin:

dotnet_remove_unnecessary_suppression_exclusions = none
dotnet_diagnostic.IDE0079.severity = warning

Gereksiz Bastırmaları Kaldırma Dışlamaları

Mülk Değer Açıklama
Seçenek adı Gereksiz Bastırmaları Kaldırma Dışlamaları
Seçenek değerleri Kural kimliklerinin veya kategorilerin virgülle ayrılmış listesi (category:ön ekli) Listelenen kurallar veya kategoriler için gizlemeleri dışlar
all Kuralı devre dışı bırakır (tüm kural kimlikleri hariç tutulur)
none Kuralı tüm kurallar için etkinleştirir (dışlama yoktur)
varsayılan seçenek değeri none
using System.Diagnostics.CodeAnalysis;

class C1
{
    // 'dotnet_remove_unnecessary_suppression_exclusions = IDE0051'

    // Unnecessary pragma suppression, but not flagged by IDE0079
#pragma warning disable IDE0051 // IDE0051: Remove unused member
    private int UsedMethod() => 0;
#pragma warning restore IDE0051

    public int PublicMethod() => UsedMethod();
}

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 IDE0079
// The code that's violating the rule is on this line.
#pragma warning restore IDE0079

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

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

Bu kural kategorisinin tamamını devre dışı bırakmak için, kategorinin önem derecesiniyapılandırma dosyasında 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.