supongo que si se utiliza para reforzar this.
que se está refiriendo a los miembros de instancia, el equivalente de un miembro estático sería utilizar ClassName.
Pero estilísticamente, ¿por qué añadir código que no cambia lo que significa?
edición añadir varias aclaraciones:
Mi última frase anterior se puede ilustrar con estos ejemplos:
class Example1
{
public int J { get; set; }
public Example1()
{
J = 0;
}
// These two methods have *exactly* the same CIL
public int InstanceMethodLong()
{
return this.J;
}
public int InstanceMethodShort()
{
return J;
}
}
El this.
en InstanceMethodLong
no cambia el significado que se compara con InstanceMethodShort
.
estáticamente:
class Example2
{
public static int K { get; set; }
static Example2()
{
K = 0;
}
// These two methods have *exactly* the same CIL
public int StaticMethodLong()
{
return Example2.K;
}
public int StaticMethodShort()
{
return K;
}
El Example2.
en StaticMethodLong
no cambia el significado que en comparación con StaticMethodShort
.
En ambos casos, agregar los resultados del calificador en el mismo CIL, el mismo comportamiento y es más fuente para escribir, leer y comprender. Estilísticamente - y felizmente aceptaré que esta es una cuestión de estilo de código - No veo ninguna razón para que esté allí.
Con prefijos de relieve la situación es ligeramente diferente:
class Example3
{
int _j;
public int J
{
get { return _j; }
set
{
_j = value;
// and do something else,
// to justify not using an auto-property
}
}
public Example3()
{
J = 0;
}
public int MethodWithParameter(int j)
{
// Now there is a *difference* between
return j;
// and
return _j;
}
}
Aquí, en MethodWithParameter
, hay una diferencia entre referirse a _j
y j
- por lo que estamos expresando deliberada y explícitamente significado diferente . Es cierto que al compilador no le importa lo que llamamos nuestros nombres de variables, pero importa a qué variables nos referimos. Entonces, en el cuerpo de MethodWithParameter
, el uso o no de un guión bajo no es simplemente estilístico, es semántico. Cuál no es el problema particular que abordamos en esta pregunta.
Gracias a todos por sus respuestas. Aprecio ahora que la respuesta simple a estas preguntas es 'no', pero mi punto era averiguar si había una manera de distinguir entre un miembro estático perteneciente a la clase que estoy trabajando o soy miembro de otra clase. Mi conclusión es que, estilísticamente, sería mejor utilizar el nombre de la clase cuando se trabaja en otra clase (un requisito previo de todos modos) y sin nombre de clase cuando en la clase misma. Daré la respuesta a @AakashM por la explicación rápida y exhaustiva (o exhaustiva). :-) –