c# - significa - ¿Por qué no puedes usar la palabra clave ''this'' en un método estático en.Net?
que significa private en c# (7)
Intento usar la palabra clave this
en un método estático, pero el compilador no me permitirá usarla.
Por qué no?
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;
}
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 una explicación mucho más profunda de qué son los miembros estáticos y por qué / cuándo usarlos en los documentos de MSDN.
Los métodos estáticos son específicos de clase y no específicos de 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 usar el nombre de la clase y solo se podrá acceder a los miembros estáticos de la clase
No existe this
referencia de objeto en el método estático.
Para la pregunta de OP, refiérase 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 dentro de un método estático;
Application.OpenForms["MainForm"];
Si desea utilizar la función no estática de la clase en la función estática. Cree el objeto de clase en la función estática. Por ejemplo
Class ClsProgram(){
public static void staticfunc(){
ClsProgram Obj = new ClsPrograM()
Obj.NonStaticFunc();
}
public void NonStaticFunc(){}
}
esto representa el objeto instancia actual y no hay instancia con métodos estáticos.