tipos significa que publicas protegidas programacion privadas polimorfismo operadores herencia delimitadores clases acceso c# .net

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.