我可以从静态方法调用(访问)非静态方法吗? 就像我有静态方法如果是,怎么??
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
{
}
答案 0 :(得分:5)
是的,但您需要参考:
public static void StaticMethod()
{
someInstance.InstanceMethod();
}
public void InstanceMethod()
{
}
您需要考虑要调用方法的实例。实例方法通常使用实例的状态,因此该方法可能会根据调用的实例执行不同的操作。
答案 1 :(得分:1)
不,你不能完全像那样称呼它。您需要该类的实例来调用非静态方法,或者它还需要是静态的。
另一种方法是使用singleton pattern - 因此在整个代码中只有一个类实例可用,并且不需要使用静态方法。这样,类中的所有方法都可以相互调用。如果没有进一步的信息,很难说这是否真的适合您的需求,但可能是最佳选择