2008-09-25 29 views

Respuesta

62

Eso es fácil. La palabra clave 'this' devuelve una referencia a la instancia actual de la clase que lo contiene. Los métodos estáticos (o cualquier miembro estático) no pertenecen a una instancia particular. Existen sin crear una instancia de la clase. Hay mucho más in depth explanation de lo que son los miembros estáticos y por qué/cuándo usarlos en los documentos de MSDN.

5

Los métodos estáticos son específicos de la clase y no específicos de la instancia. "this" representa una instancia de la clase en tiempo de ejecución, por lo que no se puede usar en un contexto estático porque no hará referencia a ninguna instancia. En su lugar, se debe utilizar el nombre de la clase y solo podrá acceder a los miembros estáticos en la clase

1

esto representa el objeto instancia actual y no hay instancia con métodos estáticos.

8

Como nota adicional, desde un método estático, puede acceder o miembros estáticos de esa clase. Hacer que el siguiente ejemplo sea válido y en ocasiones bastante útil.

public static void StaticMethod(Object o) 
{ 
    MyClass.StaticProperty = o; 
} 
1

no hay ninguna referencia this objeto en el método estático.

1

Si desea utilizar la función no estática de la clase en la función estática. Cree el objeto de la clase en la función estática. Por ejemplo

Class ClsProgram(){ 
public static void staticfunc(){ 
ClsProgram Obj = new ClsPrograM() 
Obj.NonStaticFunc(); 
} 
public void NonStaticFunc(){} 
} 
0

Para la pregunta de OP, se refieren a la respuesta aceptada. Esta respuesta es para aquellos que buscan un trazador de líneas rápido para usar en métodos estáticos.

Si la clase es un formulario, y está abierto (también necesita el nombre del formulario), se puede invocar con un método estático;

Application.OpenForms["MainForm"]; 
Cuestiones relacionadas