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

Propriedade Valor
ID da regra IDE0220
Título Adicionar transmissã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

Esta regra sinaliza a ausência de uma conversão explícita num 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 implícita pode revelar o uso de um tipo incorreto na declaraçã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 Preferência_de_estilo_dotnet_para_foreach_com_cast_explícito_no_fonte
Valores de opção always Prefira casts explícitos no código-fonte.
when_strongly_typed Prefira moldes explícitos para coleções fortemente tipadas (genéricas), mas não para coleções legadas, como ArrayList.
Valor da 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é-processador ao arquivo de origem para desativar e, em seguida, reativar 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 para um arquivo, pasta ou projeto, defina sua gravidade 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 como 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.

Ver também