从静态方法调用非静态方法

时间:2009-12-23 11:13:24

标签: c# .net winforms

我可以从静态方法调用(访问)非静态方法吗? 就像我有静态方法如果是,怎么??

public static void method()      //like this is a static method
{
    methodsec();        //from here I want to access non static method defined below
}

public void methodsec()      // non static method
{

}

2 个答案:

答案 0 :(得分:5)

是的,但您需要参考:

public static void StaticMethod()    
{
     someInstance.InstanceMethod();
}

public void InstanceMethod()
{
}

您需要考虑要调用方法的实例。实例方法通常使用实例的状态,因此该方法可能会根据调用的实例执行不同的操作。

答案 1 :(得分:1)

不,你不能完全像那样称呼它。您需要该类的实例来调用非静态方法,或者它还需要是静态的。

另一种方法是使用singleton pattern - 因此在整个代码中只有一个类实例可用,并且不需要使用静态方法。这样,类中的所有方法都可以相互调用。如果没有进一步的信息,很难说这是否真的适合您的需求,但可能是最佳选择