Добавление явного приведения в цикл 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
Дополнительные сведения см. в статье Подавление предупреждений анализа кода.
См. также
- часто используемые типы коллекций
- справочник по правилам стиля кода