Gereksiz gizlemeyi kaldırma (IDE0079)
Özellik | 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çenekler | dotnet_remove_unnecessary_suppression_exclusions |
Genel Bakış
Bu kural, kaynakta gereksiz pragma ve SuppressMessageAttribute öznitelik gizlemelerini işaret eder.
Kaynak engellemeler, kaynak kodun diğer bölümlerinde değil, belirli yerlerde derleyici ve çözümleyici kurallarının ihlallerini bastırır. Bunları genellikle yanlış pozitif sonuçları veya düzeltmeyi amaçlamadığınız daha az önemli ihlalleri engellemek için kullanırsınız. Ancak, gizlemeler 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 getirdiğinizde bu durum oluşabilir. Bu kural, kaldırılabilir gereksiz gizlemeleri tanımlamaya yardımcı olur.
Not
Kural IDE0079 yalnızca Visual Studio düzenleyicisinde açık olan dosyalardaki ihlalleri işaretler. Komut satırı derlemeleri için kullanılamaz.
Ö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.
dotnet_remove_unnecessary_suppression_exclusions
Özellik | Değer | Açıklama |
---|---|---|
Seçenek adı | dotnet_remove_unnecessary_suppression_exclusions | |
Seçenek değerleri | , kural kimliklerinin veya kategorilerin ayrılmış listesi (ön eki ile category: ) |
Listelenen kurallar için gizlemeleri dışlar |
all |
Kuralı devre dışı bırakır (hariç tutulan tüm kural kimlikleri) | |
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 öniş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, yapılandırma dosyasındaki önem derecesini none
olarak ayarlayın.
[*.{cs,vb}]
dotnet_diagnostic.IDE0079.severity = none
Bu kural kategorisinin tamamını devre dışı bırakmak için none
, kategorinin önem derecesini yapı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.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin