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 linguagem (preferências no nível de expressão) |
Linguagens 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ê quer que a regra imponha. Para obter informações sobre como configurar as opções, consulte Formato da 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 da opção | 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 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 violação, adicione diretivas de pré-processador ao arquivo de origem para desabilitar e, em seguida, reabilite 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 em um arquivo, uma pasta ou um projeto, defina a 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
como none
no arquivo de configuração.
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none
Para obter mais informações, confira Como suprimir avisos de análise de código.