Adicionar cast explícito no ciclo foreach (IDE0220)
Propriedade | Valor |
---|---|
ID da Regra | IDE0220 |
Título | Adicionar cast explícito |
Categoria | Estilo |
Subcategoria | Regras de linguagem (preferências ao nível da expressão) |
Idiomas aplicáveis | C# |
Opções | dotnet_style_prefer_foreach_explicit_cast_in_source |
Descrição Geral
Esta regra sinaliza a ausência de uma conversão explícita num foreach
ciclo quando o compilador adicionaria uma conversão oculta. Para coleções genéricas ou fortemente digitadas, forçar uma conversão explícita quando o compilador adicionar uma conversão oculta pode descobrir a utilização de um tipo incorreto na foreach
instrução .
Opções
As opções especificam o comportamento que pretende que a regra aplique. Para obter informações sobre como configurar opções, veja 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 de opção | always |
Preferir moldes explícitos no código fonte. |
when_strongly_typed |
Prefere casts explícitos para coleções com tipos fortes (genéricos), mas não para coleções legadas, como ArrayList. | |
Valor de opção predefinido | 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 quiser suprimir apenas uma única violação, adicione diretivas de pré-processamento ao ficheiro 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 desativar a regra para um ficheiro, pasta ou projeto, defina a sua gravidade como none
no ficheiro de configuração.
[*.{cs,vb}]
dotnet_diagnostic.IDE0220.severity = none
Para desativar todas as regras de estilo de código, defina a gravidade da categoria Style
como none
no ficheiro de configuração.
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none
Para obter mais informações, veja Como suprimir avisos de análise de código.