No estoy seguro de cuál es la razón detrás de esta convención. Personalmente, no me importa el uso de ningún tipo de prefijo de nombre de variable para denotar el alcance de una variable, ni me preocupa particularmente el uso de guiones bajos al nombrar algo. ¿Qué tiene de malo el uso de la palabra clave "this" y la adopción de una convención de nombres inferiores con camel para variables de miembros/instancias privadas?
public void IncrementFoo()
{
this.foo += 1;
}
Solo quedan 5 caracteres adicionales para escribir, pero es muy explícito. Si ha adoptado la convención de mayúsculas y minúsculas para sus variables de instancia privadas, esto le indica de inmediato que está accediendo a una variable de miembro/instancia privada, y no necesita usar ningún tipo de prefijo para denotarlo .
+1 para mí también, la idea principal es el filtrado de variables. – Lazer
Estaba haciendo esto mucho antes de intellisense para poder distinguir las variables de los miembros. Fue un seguimiento de los días C++ y MS utilizando m_ para las variables miembro –
Si no puede determinar si una variable es local o no dentro de unos pocos segundos de mirar un método, ¿no podría argumentarse que su método podría ser demasiado complejo? En cuanto al filtrado Intellisense, ¿es realmente una buena idea escribir código adaptado a una característica específica de un IDE? –