CA1500: Nomes de variável não devem corresponder a nomes de campo
Item | Valor |
---|---|
RuleId | CA1500 |
Categoria | Microsoft.Maintainability |
Alteração da falha | Quando acionado em um parâmetro que tem o mesmo nome de um campo: - Sem interrupção – Se o campo e o método que declara o parâmetro não puderem ser vistos fora do assembly, independentemente da alteração que fizer. - Interromper - Se você alterar o nome do campo e puder ser visto fora do assembly. - Interromper - Se você alterar o nome do parâmetro e o método que o declara puder ser visto fora do assembly. Quando acionado em uma variável local que tem o mesmo nome de um campo: - Sem interrupção – Se o campo não puder ser visto fora do assembly, independentemente da alteração que fizer. - Sem interrupção – Se você alterar o nome da variável local e não alterar o nome do campo. - Interromper - Se você alterar o nome do campo e ele puder ser visto fora do assembly. |
Causa
Um método de instância declara um parâmetro ou uma variável local cujo nome corresponde a um campo da instância do tipo declarante. Para capturar as variáveis locais que violam a regra, o assembly testado deve ser criado usando informações de depuração e o arquivo de banco de dados do programa associado (.pdb) deve estar disponível.
Descrição da regra
Quando o nome de um campo de instância corresponde a um parâmetro ou um nome de variável local, o campo de instância é acessado usando a palavra-chave this
(Me
no Visual Basic) quando dentro do corpo do método. Ao manter o código, é fácil esquecer essa diferença e supor que o parâmetro/variável de local se refere ao campo de instância, o que leva a erros. Isso é verdadeiro especialmente para corpos de métodos longos.
Como corrigir violações
Para corrigir uma violação dessa regra, renomeie o parâmetro/variável ou o campo.
Quando suprimir avisos
Não suprima um aviso nessa regra.
Exemplo
O exemplo a seguir mostra duas violações da regra.
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de