CA2265: не сравнивайте или Span<T>
не сравнивайте null
default
Свойство | Значение |
---|---|
Идентификатор правила | CA2264 |
Заголовок | Не сравнивайте или Span<T> не сравнивайте null default |
Категория | Использование |
Исправление является критическим или не критическим | Не критическое |
Включен по умолчанию в .NET 9 | Как предупреждение |
Причина
Экземпляр Span<T> сравнивается с null
или default
.
Описание правила
Сравнение диапазона с null
или default
может не делать то, что вы намеревались.
default
null
и литерал неявно преобразуются в Span<T>.Empty
.
Устранение нарушений
Удалите избыточное сравнение или сделайте код более явным путем вызова IsEmpty .
Пример
В следующем фрагменте кода показаны два нарушения CA2265 и исправление нарушений.
Span<int> span = new([1, 2, 3]);
// CA2265 violation.
if (span == null) { }
// CA2265 violation.
if (span == default) { }
// Fixes the violation.
if (span.IsEmpty) { }
Когда лучше отключить предупреждения
Это предупреждение безопасно подавлять, если вы хотите сравнить диапазон с пустым диапазоном.
Отключение предупреждений
Если вы просто хотите отключить одно нарушение, добавьте директивы препроцессора в исходный файл, чтобы отключить и повторно включить правило.
#pragma warning disable CA2265
// The code that's violating the rule is on this line.
#pragma warning restore CA2265
Чтобы отключить правило для файла, папки или проекта, задайте его серьезность none
в файле конфигурации.
[*.{cs,vb}]
dotnet_diagnostic.CA2265.severity = none
Дополнительные сведения см. в разделе Практическое руководство. Скрытие предупреждений анализа кода.