Partilhar via


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