CA2264: 'ArgumentNullException.ThrowIfNull' öğesine null atanamayan bir değer geçirmeyin
Özellik | Değer |
---|---|
Kural Kimliği | CA2264 |
Başlık | Null değer atanamayan bir değeri'ne geçirmeyin ArgumentNullException.ThrowIfNull |
Kategori | Kullanım |
Hataya neden olan veya bozulmayan düzeltme | Hataya neden olmayan |
.NET 9'da varsayılan olarak etkin | Uyarı olarak |
Neden
Hiçbir zaman null olmadığı bilinen bir değer öğesine geçirildiğinde ArgumentNullException.ThrowIfNull()
, deyimini hiçbir zaman bir özel durum oluşturmaz ve deyimini bir no-op işlemine dönüştürür.
Kural açıklaması
ArgumentNullException.ThrowIfNull
geçirilen bağımsız değişken olduğunda null
atar. Null atanamayan yapılar (hariç), Nullable<T>null atanamayan yapılar olarak bilinen tür parametreleri, 'nameof()' ifadeleri ve 'new' ifadeleri gibi bazı yapıların hiçbir zaman null ArgumentNullException.ThrowIfNull
olduğu bilinmediğinden hiçbir zaman oluşturmaz.
Bir yapı söz konusu olduğunda, bir object?
kabul ettiğinden ArgumentNullException.ThrowIfNull
yapısı kutulanır ve bu da ek bir performans cezasına neden olur.
İhlalleri düzeltme
ArgumentNullException.ThrowIfNull
Aramayı kaldırın.
Örnek
Aşağıdaki kod parçacığı CA2264 ihlalini gösterir:
static void Print(int value)
{
ArgumentNullException.ThrowIfNull(value);
Console.WriteLine(value);
}
Aşağıdaki kod parçacığı ihlali düzeltir:
static void Print(int value)
{
Console.WriteLine(value.Value);
}
Uyarıların ne zaman bastırılması gerekiyor?
Bu uyarıyı bastırmak her zaman güvenlidir.
Uyarıyı gizleme
Yalnızca tek bir ihlali engellemek istiyorsanız, kuralı devre dışı bırakmak ve sonra yeniden etkinleştirmek için kaynak dosyanıza ön işlemci yönergeleri ekleyin.
#pragma warning disable CA2264
// The code that's violating the rule is on this line.
#pragma warning restore CA2264
Bir dosya, klasör veya projenin kuralını devre dışı bırakmak için, yapılandırma dosyasındaki önem derecesini none
olarak ayarlayın.
[*.{cs,vb}]
dotnet_diagnostic.CA2264.severity = none
Daha fazla bilgi için bkz . Kod analizi uyarılarını gizleme.