Dela via


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.

Se även