Поделиться через


CA2265: не сравнивайте или Span<T> не сравнивайте nulldefault

Свойство Значение
Идентификатор правила CA2264
Заголовок Не сравнивайте или Span<T> не сравнивайте nulldefault
Категория Использование
Исправление является критическим или не критическим Не критическое
Включен по умолчанию в .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

Дополнительные сведения см. в разделе Практическое руководство. Скрытие предупреждений анализа кода.

См. также