2013-07-26 3 views
-5

Ceci est mon code actuel:Que fait la ligne "fm2.fm1 = this;" fait réellement?

J'ai cette ligne dans mon code parce que quelqu'un a dit de le mettre. Cela fonctionne et je ne cherche pas à l'enlever, je voudrais juste savoir ce qu'il fait. J'ai essayé Google, mais je ne sais même pas quoi chercher.

Form2 fm2 = new Form2(); 
fm2.productNameTextBox.Text = myBasket[i].ProductName; 
fm2.numQTY.Value = myBasket[i].Quantity; 
fm2.latestPriceTextBox.Text = Convert.ToString(myBasket[i].LatestPrice); 

fm2.fm1 = this; 

fm2.ShowDialog(); 
+6

* J'ai cette ligne dans mon code parce que quelqu'un a dit de le mettre. * Alors pourquoi ne pas leur demander? – Jon

+0

Pourquoi ne déboguez-vous pas votre code? – wudzik

+0

@Jon parce qu'ils sont allés dormir en ce moment. –

Répondre

5

fm2.fm1 = this;

Cette déclaration, l'objet form courant est affecté à la propriété de fm2 objet fm1, this représente l'objet actuel de la classe, comme Classs actuelle est la forme alors que cela représente l'objet courant form.

Ce mot clé fait référence à l'instance actuelle de la classe. Les fonctions membres statiques ne possèdent pas ce pointeur. Le ce mot-clé peut être utilisé pour accéder à des membres au sein des constructeurs, des méthodes d'instance et accesseurs exemple, MSDN

+1

@Liam: Dans d'autres mondes - vous donnez la possibilité pour form2 make changements à form1. Bien sûr, cela dépend de votre code. Btw, étrange de demander comment fonctionne le code, qui est écrit par vous :-) – VikciaR

1

this est un refference à l'instance de classe que vous êtes actuellement. Si vous l'utilisez dans Form2 class, il renverra à l'instance actuellement utilisée de Form2. Lorsque vous utilisez

fm2.fm1 = this; 

dans Form2 classe, vous attribuez la forme actuelle à l'objet Form2 nommé fm1 dans la déclaration de « FM2 ».

Questions connexes