在另一个方法中创建的方法中停止对象的正确方法是什么?

时间:2011-08-25 20:17:14

标签: c#

我有一个表单,其中有一个按钮,用于创建一个新对象并调用它的start()方法。

该程序运行正常,但是,我现在想要创建一个停止按钮。我显然无法调用对象的stop()方法,因为它在其他地方,但是,我只是想不出更改代码的正确方法。

在我写这篇文章时,我能想到的最好的事情是将MyObject myo = new MyObject("test");MyObject myo;放在类的顶部,在方法之外,然后尝试在类中设置它

在这种情况下你会做什么?

3 个答案:

答案 0 :(得分:3)

这正是你应该做的。它被称为创建成员变量。

但请确保myo.stop()myo时不要致电null

答案 1 :(得分:3)

你是对的。您必须将对象引用存储在某个位置,以便稍后可以调用其“停止”方法。

答案 2 :(得分:3)

这完全取决于范围。

如果您希望表单随时可以看到该对象,则将其作为私有/受保护成员放置在表单的对象中可能是一条很好的路径。 (确保它不是空的。

class MyForm
{
   private MyObject myobject;

   private MyForm(){
     // create the object
     myobject = new MyObject;
   }

   private void Start_Click(){
     myobject.start();
   }
   private void Stop_Click(){
     myobject.stop();
   }
 }

如果经常引用此对象,您可以关注singleton pattern

如果您可以根据传递给构造的[an /]参数重新创建,则可以在每次需要时重新创建它。