CA2264: Jangan berikan nilai yang tidak dapat diubah ke 'ArgumentNullException.ThrowIfNull'
Properti | Nilai |
---|---|
ID Aturan | CA2264 |
Judul | Jangan meneruskan nilai yang tidak dapat diubah ke 'ArgumentNullException.ThrowIfNull' |
Golongan | Penggunaan |
Perbaikan bersifat disruptif atau non-disruptif | Non-disruptif |
Diaktifkan secara default di .NET 9 | Sebagai peringatan |
Penyebab
Ketika nilai yang dikenal tidak pernah null diteruskan ke ArgumentNullException.ThrowIfNull()
, pengecualian tidak pernah dilemparkan, menjadikan pernyataan sebagai no-op.
Deskripsi aturan
ArgumentNullException.ThrowIfNull
melempar ketika argumen yang diteruskan adalah null
. Konstruksi tertentu seperti struct yang tidak dapat diubah ke null (kecuali untuk Nullable<T>), ekspresi 'nameof()' dan ekspresi 'baru' diketahui tidak pernah null, jadi ArgumentNullException.ThrowIfNull
tidak akan pernah melemparkan.
Dalam kasus struct, karena ArgumentNullException.ThrowIfNull
menerima object?
, struktur dikotak, yang menyebabkan penalti performa tambahan.
Cara memperbaiki pelanggaran
ArgumentNullException.ThrowIfNull
Hapus panggilan.
Contoh
Cuplikan kode berikut menunjukkan pelanggaran CA2264:
static void Print(int value)
{
ArgumentNullException.ThrowIfNull(value);
Console.WriteLine(value);
}
Cuplikan kode berikut memperbaiki pelanggaran:
static void Print(int value)
{
Console.WriteLine(value.Value);
}
Kapan harus menekan peringatan
Selalu aman untuk menekan peringatan ini.
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 CA2264
// The code that's violating the rule is on this line.
#pragma warning restore CA2264
Untuk menonaktifkan aturan untuk file, folder, atau proyek, atur tingkat keparahannya ke none
dalam file konfigurasi.
[*.{cs,vb}]
dotnet_diagnostic.CA2264.severity = none
Untuk informasi selengkapnya, lihat Cara menyembunyikan peringatan analisis kode.
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk