¿Hay alguna manera de forzar el uso de la palabra clave this
en Visual Studio al hacer referencia a los miembros de la instancia actual?¿Puedo forzar el uso de la palabra clave 'this' en C# .NET?
Ejemplo con un error en el constructor:
class MyClass
{
public object Foo { get; set; }
public MyClass(object foo)
{
Foo = Foo; // this should of course be lowercase but it's easy to miss
}
}
Este código probablemente generará el infame 'object reference not set to an instance of an object'
excepción alguna parte más adelante.
Cómo hacer que funcione pero aún así es fácil pasar por alto:
class MyClass
{
public object Foo { get; set; }
public MyClass(object foo)
{
Foo = foo; // Valid syntax but unclear.
}
}
Esta es una sintaxis válida pero es fácil perderse.
La sintaxis me gustaría hacer cumplir visual studio:
class MyClass
{
public object Foo { get; set; }
public MyClass(object foo)
{
this.Foo = foo; // this is "safe".
}
}
Si se aplica esta convención que tendría que escribir this.Foo = this.Foo
para crear el mismo tipo de error como en el primer ejemplo.
Siempre uso la palabra clave this
de todos modos, ya que me facilita la vida al cambiar entre C# y otros idiomas, por lo que no habría ninguna desventaja en absoluto.
Visual Studio te advierte cuando cometes el primer error si usas fxcop –
Como dijiste, no creo que eso hiciera ninguna diferencia al problema que tenías, te sugiero cambiar el nombre del parámetro en lugar de algo como 'bar', de esta forma no tendrías ningún problema. – atoMerz