Compartilhar via


Adicionar uma conversão explícita no loop foreach (IDE0220)

Propriedade Valor
ID da regra IDE0220
Título Adicionar conversão explícita
Categoria Estilo
Subcategoria Regras de idioma (preferências no nível da expressão)
idiomas aplicáveis C#
Opções dotnet_style_prefer_foreach_explicit_cast_in_source

Visão geral

Essa regra sinaliza a ausência de uma conversão explícita em um loop foreach quando o compilador adicionaria uma conversão oculta. Para coleções genéricas ou fortemente tipadas, forçar uma conversão explícita quando o compilador adicionaria uma conversão oculta pode revelar o uso de um tipo incorreto na instrução foreach.

Opções

As opções especificam o comportamento que você deseja que a regra imponha. Para obter informações sobre como configurar opções, consulte Formato de opção.

dotnet_style_prefer_foreach_explicit_cast_in_source

Propriedade Valor Descrição
Nome da Opção dotnet_style_prefer_foreach_explicit_cast_in_source
Valores das opções always Prefira conversões explícitas no código-fonte.
when_strongly_typed Prefira conversões explícitas para coleções fortemente tipadas (genéricas), mas não para coleções herdadas, como ArrayList.
valor de opção padrão when_strongly_typed

Exemplo

// 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>())

Suprimir um aviso

Se você quiser suprimir apenas uma única violação, adicione diretivas de pré-processamento ao arquivo de origem para desabilitar e depois reabilitar a regra.

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

Para desabilitar a regra de um arquivo, pasta ou projeto, defina sua severidade como none no arquivo de configuração .

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

Para desabilitar todas as regras de estilo de código, defina a severidade da categoria Style para none no arquivo de configuração .

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

Para obter mais informações, consulte Como suprimir avisos de análise de código.

Consulte também