Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Не сравнивайте
| Свойство | Значение |
|---|---|
| Идентификатор правила | CA2264 |
| Заголовок | Не сравнивайте Span<T> с null или default |
| Категория | Использование |
| Исправление является критическим или не критическим | неразрывный |
| Включен по умолчанию в .NET 10 | Как предупреждение |
| Применимые языки | C# и Visual Basic |
Причина
Экземпляр 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
Дополнительные сведения см. в разделе Практическое руководство. Скрытие предупреждений анализа кода.