Bagikan melalui


CA2263: Lebih suka kelebihan beban umum saat jenis diketahui

Nilai
ID Aturan CA2263
Judul Lebih suka kelebihan beban generik saat jenis diketahui
Golongan Penggunaan
Perbaikan bersifat disruptif atau non-disruptif Non-disruptif
Diaktifkan secara default di .NET 9 Sebagai saran

Penyebab

Metode kelebihan beban yang menerima System.Type argumen dipanggil ketika jenis diketahui pada waktu kompilasi dan kelebihan beban umum yang sesuai tersedia.

Deskripsi aturan

Kelebihan beban umum lebih disukai daripada kelebihan beban yang menerima argumen jenis System.Type ketika jenis diketahui pada waktu kompilasi (menggunakan operator typeof di C# atau operator GetType di Visual Basic). Kelebihan generik mempromosikan kode yang lebih bersih dan lebih aman jenis dengan pemeriksaan waktu kompilasi yang ditingkatkan.

Cara memperbaiki pelanggaran

Untuk memperbaiki pelanggaran aturan ini, gunakan kelebihan beban umum yang sesuai.

Contoh

Cuplikan kode berikut menunjukkan pelanggaran CA2263:

int size = Marshal.SizeOf(typeof(bool));
Dim size As Integer = Marshal.SizeOf(GetType(Boolean))

Cuplikan kode berikut memperbaiki pelanggaran:

int size = Marshal.SizeOf<bool>();
Dim size As Integer = Marshal.SizeOf(Of Boolean)()

Kapan harus menekan peringatan

Aman untuk menekan peringatan dari aturan ini; namun, kami sarankan Anda menggunakan kelebihan beban umum jika memungkinkan.

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

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

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

Untuk informasi selengkapnya, lihat Cara menyembunyikan peringatan analisis kode.