如何在成员方法中实现条件时重新启动对象?

时间:2011-08-23 10:02:03

标签: c#

例如

         Class AClass
            {
               public AClass (int a)
               {...}
               public void DoIt()
               {
                 ...
                 c = PreDo();
                 ...
               }
               private int PreDo()
               { ...
                 if (b==1)
                     xxxxx
                 ...
               }
            }

         int Main ()
             {
               AClass myClass = new AClass(2);
               myClass.DoIt();  //*
             }

*这里我想要调用xxxx然后myClass就没用了。

因此,它会在myClass = new AClass(3), myClass.DoIt()中试用main,依此类推。

2 个答案:

答案 0 :(得分:0)

跨所有实例或仅在一个实例中? ...只需使用(静态)变量notRunAllready来记住被叫方(所以if (b==1)转到if (!notRunAllready && b==1)),然后在{xxxx}中将notRunAllready设置为true

答案 1 :(得分:0)

我可能理解你在说什么。 您可能希望根据类的构造函数中初始化的某个类内部变量进行条件执行。

  1. 像@CKoening所说的那样声明它们像static。但它是由我们联系的,因为它并不是绝对清楚在通话期间会发生什么。

  2. 进行条件执行的最佳解决方案是向DoIt(..)方法添加参数,方法是明确“如果我将此参数传递给函数将会发生什么”。

  3. 如果这不是您要求的,请更好地解释。