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


Добавление явного приведения в цикл 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

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

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

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

См. также раздел