CA2265: Span<T>, null veya default ile karşılaştırmayın

Özellik Değer
Kural Kimliği CA2264
Başlık Span<T> öğesini null veya default ile karşılaştırmayın
Kategori Kullanım
Düzeltme bozucu ya da bozmayan olabilir Kesintisiz
.NET 10'da varsayılan olarak etkin Uyarı olarak
Geçerli diller C# ve Visual Basic

Neden

Bir Span<T> örnek veya nullile default karşılaştırılır.

Kural açıklaması

Bir aralığı null veya default ile karşılaştırmak, düşündüğünüz gibi çalışmayabilir. default ve null değişmez değeri örtük olarak Span<T>.Empty dönüştürülür.

İhlalleri düzeltme

Yedekli karşılaştırmayı kaldırın veya bunun yerine IsEmpty çağırarak kodu daha açık hale getirin.

Örnek

Aşağıdaki kod parçacığı iki CA2265 ihlalini ve ihlallerin düzeltmesini gösterir.

Span<int> span = new([1, 2, 3]);
// CA2265 violation.
if (span == null) { }
// CA2265 violation.
if (span == default) { }

// Fixes the violation.
if (span.IsEmpty) { }

Uyarıların ne zaman bastırılması gerekiyor?

Alanı boş bir aralıkla karşılaştırmak istiyorsanız, bu uyarıyı yok saymanız 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 CA2265
// The code that's violating the rule is on this line.
#pragma warning restore CA2265

Bir dosya, klasör veya projenin kuralını devre dışı bırakmak için, yapılandırma dosyasındaki önem derecesini noneolarak ayarlayın.

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

Daha fazla bilgi için bkz . Kod analizi uyarılarını gizleme.

Ayrıca bkz.