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