Bagikan melalui


CA1801: Meninjau parameter yang tidak digunakan

Properti Nilai
ID Aturan CA1801
Judul Tinjau parameter yang tidak digunakan
Golongan Penggunaan
Perbaikan bersifat disruptif atau non-disruptif Tidak melanggar - Jika anggota tidak terlihat di luar rakitan, terlepas dari perubahan yang Anda buat.

Tidak melanggar - Jika Anda mengubah anggota untuk menggunakan parameter dalam isinya.

Melanggar - Jika Anda menghapus parameter dan parameter tersebut terlihat di luar rakitan.
Diaktifkan secara default di .NET 9 No

Penyebab

Tanda tangan metode menyertakan parameter yang tidak digunakan dalam isi metode.

Aturan ini tidak memeriksa jenis metode berikut:

  • Metode yang direferensikan oleh delegasi.

  • Metode yang digunakan sebagai penanganan aktivitas.

  • Konstruktor serialisasi (lihat panduan).

  • Metode serialisasi GetObjectData .

  • Metode yang dideklarasikan dengan pengubah abstract (MustOverride di Visual Basic).

  • Metode yang dideklarasikan dengan pengubah virtual (Overridable di Visual Basic).

  • Metode yang dideklarasikan dengan pengubah override (Overrides di Visual Basic).

  • Metode yang dideklarasikan dengan pengubah extern (Declare pernyataan di Visual Basic).

Aturan ini tidak menandai parameter yang dinamai dengan simbol buang, misalnya, , __1, dan _2. Ini mengurangi kebisingan peringatan pada parameter yang diperlukan untuk persyaratan tanda tangan, misalnya, metode yang digunakan sebagai delegasi, parameter dengan atribut khusus, atau parameter yang nilainya diakses secara implisit pada waktu proses oleh kerangka kerja tetapi tidak direferensikan dalam kode.

Catatan

Aturan ini tidak digunakan lagi demi IDE0060. Untuk informasi tentang cara menerapkan penganalisis IDE0060 saat build, lihat analisis gaya kode.

Deskripsi aturan

Tinjau parameter dalam metode non-virtual yang tidak digunakan dalam isi metode untuk memastikan tidak ada kekeliruan sekeliling kegagalan untuk mengaksesnya. Parameter yang tidak digunakan dikenakan biaya pemeliharaan dan performa.

Terkadang, pelanggaran aturan ini dapat menunjuk ke bug implementasi dalam metode . Misalnya, parameter harus digunakan dalam isi metode. Sembunyikan peringatan aturan ini jika parameter harus ada karena kompatibilitas mundur.

Cara memperbaiki pelanggaran

Untuk memperbaiki pelanggaran aturan ini, hapus parameter yang tidak digunakan (perubahan yang melanggar), atau gunakan parameter dalam isi metode (perubahan yang tidak melanggar).

Kapan harus menekan peringatan

Aman untuk menekan peringatan dari aturan ini:

  • Dalam kode yang dikirim sebelumnya yang perbaikannya akan menjadi perubahan yang melanggar.

  • this Untuk parameter dalam metode ekstensi kustom untuk Microsoft.VisualStudio.TestTools.UnitTesting.Assert. Fungsi di Assert kelas bersifat statis, jadi tidak perlu mengakses this parameter dalam isi metode.

Menyembunyikan peringatan

Jika Anda hanya ingin menyembunyikan satu pelanggaran, tambahkan arahan praprosedur ke file sumber Anda untuk dinonaktifkan lalu aktifkan kembali aturannya.

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

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

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

Untuk informasi selengkapnya, lihat Cara menyembunyikan peringatan analisis kode.

Mengonfigurasi kode yang akan dianalisis

Gunakan opsi berikut untuk mengonfigurasi bagian mana dari codebase Anda yang akan menjalankan aturan ini.

Anda dapat mengonfigurasi opsi ini hanya untuk aturan ini, untuk semua aturan yang berlaku untuknya, atau untuk semua aturan dalam kategori ini (Performa) yang diterapkannya. Untuk informasi selengkapnya, lihat Opsi konfigurasi aturan kualitas kode.

Menyertakan permukaan API tertentu

Anda dapat mengonfigurasi bagian basis kode mana yang akan dijalankan aturan ini, berdasarkan aksesibilitasnya, dengan mengatur opsi api_surface. Misalnya, untuk menentukan bahwa aturan hanya boleh dijalankan pada permukaan API non-publik, tambahkan pasangan kunci-nilai berikut ke file .editorconfig di proyek Anda:

dotnet_code_quality.CAXXXX.api_surface = private, internal

Catatan

Ganti bagian XXXXCAXXXX dengan ID aturan yang berlaku.

Secara default, aturan CA1801 berlaku untuk semua permukaan API (publik, internal, dan privat).

Contoh

Contoh berikut menunjukkan dua metode. Satu metode melanggar aturan dan metode lainnya memenuhi aturan.

// This method violates the rule.
public static string GetSomething(int first, int second)
{
    return first.ToString(CultureInfo.InvariantCulture);
}

// This method satisfies the rule.
public static string GetSomethingElse(int first)
{
    return first.ToString(CultureInfo.InvariantCulture);
}