CA1500: Los nombres de las variables no deben coincidir con los nombres de los campos
Nombre de tipo |
VariableNamesShouldNotMatchFieldNames |
Identificador de comprobación |
CA1500 |
Categoría |
Microsoft.Maintainability |
Cambio problemático |
Cuando se desencadena en un parámetro que tiene el mismo nombre que un campo:
Cuando se desencadena en una variable local que tiene el mismo nombre que un campo:
|
Motivo
Un método de instancia declara un parámetro o una variable local cuyo nombre coincide con un campo de instancia del tipo declarativo.Para detectar las variables locales que infringen esta regla, el ensamblado probado se debe compilar a partir de la información de depuración, y el archivo de base de datos de programa asociado (.pdb) debe estar disponible.
Descripción de la regla
Cuando el nombre de un campo de instancia coincide con el de un parámetro o el de una variable local, se tiene acceso al campo de instancia utilizando la palabra this (Me en Visual Basic) desde el interior del cuerpo del método.Al mantener el código, resulta fácil olvidarse de esta diferencia y suponer que el parámetro o la variable local hace referencia al campo de instancia, lo que puede provocar errores.Esto sucede especialmente con cuerpos de método largos.
Cómo corregir infracciones
Para corregir una infracción de esta regla, cambie el nombre del parámetro o la variable, o el del campo.
Cuándo suprimir advertencias
No suprima las advertencias de esta regla.
Ejemplo
El ejemplo siguiente muestra dos infracciones de esta regla.
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;
}
}
}