CA2265: Jämför inte med Span<T>
null
eller default
Property | Värde |
---|---|
Regel-ID | CA2264 |
Title | Jämför inte med Span<T> null eller default |
Kategori | Användning |
Korrigeringen är icke-bakåtkompatibel | Icke-icke-bryta |
Aktiverad som standard i .NET 9 | Som varning |
Orsak
En Span<T> instans jämförs med null
eller default
.
Regelbeskrivning
Att jämföra ett spann med null
eller default
kanske inte gör det du avsåg. default
och literalen null
konverteras implicit till Span<T>.Empty
.
Så här åtgärdar du överträdelser
Ta bort den redundanta jämförelsen eller gör koden tydligare genom att anropa IsEmpty i stället.
Exempel
Följande kodfragment visar två överträdelser av CA2265 och korrigeringen för överträdelserna.
Span<int> span = new([1, 2, 3]);
// CA2265 violation.
if (span == null) { }
// CA2265 violation.
if (span == default) { }
// Fixes the violation.
if (span.IsEmpty) { }
När du ska ignorera varningar
Det är säkert att ignorera den här varningen om du vill jämföra intervallet med det tomma intervallet.
Ignorera en varning
Om du bara vill förhindra en enda överträdelse lägger du till förprocessordirektiv i källfilen för att inaktivera och aktiverar sedan regeln igen.
#pragma warning disable CA2265
// The code that's violating the rule is on this line.
#pragma warning restore CA2265
Om du vill inaktivera regeln för en fil, mapp eller ett projekt anger du dess allvarlighetsgrad till none
i konfigurationsfilen.
[*.{cs,vb}]
dotnet_diagnostic.CA2265.severity = none
Mer information finns i Så här utelämnar du kodanalysvarningar.