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


Использовать выражение коллекции для stackalloc (IDE0302)

Свойство Ценность
идентификатор правила IDE0302
Заголовок Используйте выражение коллекции для stackalloc
категория Стиль
Категория Подкатегория Языковые правила (предпочтения уровня выражений)
применимые языки C# 12+
варианты dotnet_style_prefer_collection_expression

Обзор

Это правило похоже на Использовать выражение коллекции для массива (IDE0300), за исключением того, что оно ищет stackalloc вместо массивов. Как и IDE0300, он предлагает преобразовать код для использования выражения коллекции . Например, stackalloc int[] { ... } и stackalloc [] { ... } упрощены до [...].

Заметка

Это правило доступно только в .NET 8 и более поздних версиях, где значения можно сохранить в стеке.

Параметры

Параметры указывают поведение, которое требуется применить правило. См. сведения о настройке параметров в Опции формата.

dotnet_style_prefer_collection_expression

Свойство Ценность Описание
имя опции dotnet_style_prefer_collection_expression
значения опции true | when_types_exactly_match Предпочитайте использовать выражения коллекции.
false | never Отключает правило.
значение параметра по умолчанию true

Пример

// Code with violations.
ReadOnlySpan<int> x = stackalloc int[] { 1, 2, 3 };

// Fixed code.
ReadOnlySpan<int> x = [1, 2, 3];

Подавление предупреждения

Если вы хотите отключить только одно нарушение, добавьте директивы препроцессора в исходный файл, чтобы отключить и повторно включить правило.

#pragma warning disable IDE0302
// The code that's violating the rule is on this line.
#pragma warning restore IDE0302

Чтобы отключить правило для файла, папки или проекта, задайте его серьезность none в файле конфигурации .

[*.{cs,vb}]
dotnet_diagnostic.IDE0302.severity = none

Чтобы отключить все правила стиля кода, задайте уровень серьезности для категории Style, чтобы none в файле конфигурации .

[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none

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

См. также