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 mengaksesthis
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 XXXX
CAXXXX
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);
}