En los viejos tiempos, hicimos notación húngara. Eso ahora se considera pasado y, en su mayor parte, ya no lo uso, pero todavía encuentro uso para el m_prefijo para indicar campos de miembros.
Para mí, si estoy leyendo el código de otra persona y veo esto:
count = 3;
Supongo que countes una variable local para esa función y estoy haciendo algo que se usará en otra parte de la función; si veo esto:
m_count = 3;
Inmediatamente me doy cuenta de que estoy actualizando el estado del objeto.
Las pautas de estilo de Microsoft dicen que esa es la forma incorrecta de hacer las cosas. Se supone que debo nombrar mis campos no públicos exactamente como las variables temporales definidas dentro de la función. No m_, ni siquiera un simple guión bajo.
Sí, podemos definir nuestro propio estilo de codificación, pero luego tengo que luchar con varias herramientas de análisis de código estático, para convencerlos de que nuestra forma de hacer las cosas está bien.
Estoy feliz de cambiar al estilo de Microsoft, pero me gustaría saber por qué las cosas son como son.
¿Por qué ahora se considera malo saber si una variable es una función local o un miembro?
PD Esto es muy similar a ¿Cuáles son las mejores prácticas actuales consideradas con respecto a la palabra clave "this" en frente del campo y los métodos en c #? , pero estoy preguntando por m_nothis.
PPS También vea ¿Por qué Microsoft hizo que los parámetros, las variables locales y los campos privados tengan la misma convención de nomenclatura de nombres?
countno apareció de la nada, ya que no se declaró en el método. Francamente, el argumento de "fuera de IDE" es REALMENTE débil. Especialmente porque incluso hay herramientas de revisión de código que funcionan en el IDE.
thispalabra clave? ¿No podría referirse a los miembros que usanthis, comothis.count?