Hapus supresi yang tidak perlu (IDE0079)

Harta benda Nilai
ID Aturan IDE0079
Judul Hapus penekanan yang tidak perlu
Kategori CodeQuality
Subkataan Aturan kode yang tidak perlu (preferensi supresi)
bahasa yang berlaku C# dan Visual Basic
Opsi dotnet_remove_unnecessary_suppression_exclusions

Ikhtisar

Aturan ini menandai pragma dan supresi atribut SuppressMessageAttribute yang tidak perlu di sumbernya.

Penekanan sumber menekan pelanggaran aturan pengompilasi dan penganalisis di tempat tertentu tetapi tidak di bagian lain dari kode sumber. Anda umumnya menggunakannya untuk menekan positif palsu atau pelanggaran yang kurang penting yang tidak ingin Anda perbaiki. Namun, supresi sering menjadi basi. Ini dapat terjadi jika aturan diperbaiki untuk mencegah positif palsu atau Anda merefaktor kode Anda dan, dalam melakukannya, merender supresi redundan. Aturan ini membantu mengidentifikasi supresi berlebihan, yang dapat dihapus.

Nota

Bahkan jika Anda mengaktifkan aturan gaya kode pada build, aturan ini tidak diaktifkan. Ini hanya muncul di IDE.

Contoh

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

Pilihan

Opsi menentukan perilaku yang Anda inginkan untuk diberlakukan aturan. Untuk informasi tentang mengonfigurasi opsi, lihat format Opsi .

Nota

Mengatur tingkat keparahan dalam format option_name = value:severity tidak berlaku untuk opsi dotnet_remove_unnecessary_suppression_exclusions dan harus dihindari. Sebagai gantinya, tentukan tingkat keparahan menggunakan entri terpisah, misalnya:

dotnet_remove_unnecessary_suppression_exclusions = none
dotnet_diagnostic.IDE0079.severity = warning

dotnet_remove_unnecessary_suppression_exclusions

Harta benda Nilai Deskripsi
Nama opsi dotnet_remove_unnecessary_suppression_exclusions
nilai Opsi Daftar ID aturan atau kategori yang dipisahkan koma (diawali dengan category:) Mengecualikan supresi untuk aturan atau kategori yang tercantum
all Menonaktifkan aturan (semua ID aturan dikecualikan)
none Mengaktifkan aturan untuk semua aturan (tanpa pengecualian)
nilai opsi default 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();
}

Menyembunyikan peringatan

Jika Anda hanya ingin menekan satu pelanggaran, tambahkan arahan prapemroseduran ke file sumber Anda untuk menonaktifkan lalu mengaktifkan kembali aturan.

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

Untuk menonaktifkan aturan untuk file, folder, atau proyek, atur tingkat keparahannya ke none dalam file konfigurasi .

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

Untuk menonaktifkan seluruh kategori aturan ini, atur tingkat keparahan untuk kategori ke none dalam file konfigurasi .

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

Untuk informasi selengkapnya, lihat Cara menekan peringatan analisis kode.

Lihat juga