2008-09-25 8 views

Répondre

62

C'est facile. Le mot clé 'this' renvoie une référence à l'instance en cours de la classe la contenant. Les méthodes statiques (ou tout membre statique) n'appartiennent pas à une instance particulière. Ils existent sans créer une instance de la classe. Il ya beaucoup plus de in depth explanation de ce que sont les membres statiques et pourquoi/quand les utiliser dans les documents MSDN.

5

Les méthodes statiques sont spécifiques à la classe et non spécifiques à l'instance. "this" représente une instance de la classe au moment de l'exécution, donc cela ne peut pas être utilisé dans un contexte statique car il ne référencera aucune instance. Au lieu de cela, le nom de la classe doit être utilisé et vous ne pourrez accéder qu'aux membres statiques de la classe

1

Ceci représente l'objet d'instance actuel et il n'y a pas d'instance avec des méthodes statiques.

8

Comme note supplémentaire, à partir d'une méthode statique, vous pouvez accéder aux membres statiques de cette classe. Rendre l'exemple ci-dessous valide et parfois très utile.

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

Il n'y a pas de référence d'objet this dans la méthode statique.

1

Si vous souhaitez utiliser la fonction non statique de la classe dans la fonction statique.Créez l'objet de la classe dans la fonction statique. Pour exemple

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

Pour la question de l'OP, reportez-vous à la réponse acceptée. Cette réponse est pour ceux qui recherchent un revêtement rapide à utiliser dans les méthodes statiques.

Si la classe est un formulaire et qu'elle est ouverte (vous avez également besoin du nom du formulaire), vous pouvez l'appeler dans une méthode statique;

Application.OpenForms["MainForm"]; 
Questions connexes