【问题标题】:What does the line "fm2.fm1 = this;" actually do? [closed]“fm2.fm1 = this;”这一行是什么?实际上呢? [关闭]
【发布时间】:2013-07-26 10:32:44
【问题描述】:

这是我当前的代码:

我的代码中有这一行,因为有人说要把它放进去。它有效,我不想删除它,我只是想知道它的作用。我试过用 Google 搜索它,但我什至不知道要搜索什么。

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();

【问题讨论】:

  • 我的代码中有这一行是因为有人说要把它放进去。那你为什么不问问他们呢?
  • 你为什么不调试你的代码?
  • @Jon 因为他们现在去睡觉了。
  • 你看过fm2的代码,看看fm1是个什么样的变量?
  • liam,Daniel 建议here,(仅供参考,我仍然更喜欢我的答案)

标签: c# winforms


【解决方案1】:

fm2.fm1 = 这个;

这条语句,将当前form对象赋值给fm2对象的属性fm1this表示当前类的对象,因为当前类是form所以这表示当前form对象。

this 关键字引用类的当前实例。静止的 成员函数没有 this 指针。 this关键字可以是 用于从构造函数、实例方法和 实例访问器,MSDN

【讨论】:

  • @Liam:在其他世界中 - 您可以让 form2 对 form1 进行更改。当然,这取决于您的代码。顺便说一句,奇怪的是你写的代码是如何工作的:-)
【解决方案2】:

this 是对您当前所在类的实例的引用。如果您在Form2 类中使用它,它将引用当前使用的Form2 实例。当你使用

fm2.fm1 = this;

Form2 类中,您将当前表单分配给'fm2' 声明中名为fm1Form2 对象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-11
    • 2013-05-26
    • 2013-02-02
    • 1970-01-01
    • 2021-04-07
    • 1970-01-01
    • 1970-01-01
    • 2015-03-21
    相关资源
    最近更新 更多