CA1500: os nomes de variável não devem corresponder aos nomes de campo
TypeName |
VariableNamesShouldNotMatchFieldNames |
CheckId |
CA1500 |
Categoria |
Microsoft.Maintainability |
Alteração Significativa |
Quando é acionado em um parâmetro que tenha o mesmo nome que um campo:
Quando é acionado em uma variável local que tenha o mesmo nome que um campo:
|
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 declarando.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 associado de base de dados do programa (.pdb) deve estar disponível.
Descrição da Regra
Quando o nome de um campo da instância corresponda um parâmetro ou um nome de variável local, o campo da instância do é acessado usando a palavra-chave de this (Me em Visual Basic) dentro do corpo do método.Para manter o código, é fácil esquecer essa diferença e pressupõe que o parâmetro/variável local se refere ao campo da instância, o que resulta em erros.Isso é especialmente verdadeiro para corpos longos do método.
Como Corrigir Violações
Para corrigir uma violação desta regra, renomeie o parâmetro/variável ou o campo.
Quando Suprimir Alertas
Não elimine um alerta desta regra.
Exemplo
O exemplo a seguir mostra duas violações da regra.
Imports System
Namespace MaintainabilityLibrary
Class MatchingNames
Dim someField As Integer
Sub SomeMethodOne(someField As Integer)
End Sub
Sub SomeMethodTwo()
Dim someField As Integer
End Sub
End Class
End Namespace
using System;
namespace MaintainabilityLibrary
{
class MatchingNames
{
int someField;
void SomeMethodOne(int someField) {}
void SomeMethodTwo()
{
int someField;
}
}
}