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


Добавление явного приведения в цикл foreach (IDE0220)

Собственность Ценность
Идентификатор правила IDE0220
Заголовок Добавьте явное приведение
категория Стиль
подкатегория Языковые правила (предпочтения уровня выражений)
применимые языки C#
Опции dotnet_style_prefer_foreach_explicit_cast_in_source

Обзор

Это правило отмечает отсутствие явного приведения в цикле foreach там, где компилятор автоматически добавляет скрытое приведение. Для универсальных или строго типизированных коллекций, принуждая явное приведение, когда компилятор добавил бы скрытое приведение, можно обнаружить использование неправильного типа в операторе foreach.

Параметры

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

dotnet_style_prefer_foreach_explicit_cast_in_source

Собственность Ценность Описание
имя параметра dotnet_style_prefer_foreach_explicit_cast_in_source
значения опций always Предпочитайте явные приведения в исходном коде.
when_strongly_typed Предпочитайте явные приведения для строго типизированных (обобщённых) коллекций, но не для устаревших коллекций, таких как ArrayList.
значение параметра по умолчанию when_strongly_typed

Пример

// Code with violations.
var list = new List<object>();
foreach (string item in list) { }

// Fixed code.
var list = new List<object>();
foreach (string item in list.Cast<string>())

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

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

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

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

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

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

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

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

См. также