为什么我不能从同一个班级打电话给'public void'?

时间:2014-03-31 01:32:15

标签: c# methods

我对方法结构的理解仅限于非常有限的结构范围:

public / private
static
void / variable returns
string, int etc.

那么为什么我不能在同一个类中调用一个方法呢?

class ClassName
{
    public void Method1()
    {
        // do stuff...
    }

    public static void Method2()
    {
        // This won't work?
        Method1();

        // do stuff...
    }
}

3 个答案:

答案 0 :(得分:3)

您无法从静态方法调用非静态方法。 如果你真的想在静态方法中做到这一点,你需要实例化类,如:

    class myClass
    {
        public void Method1(){
          //Stuffs
        }

        public static void Method2(){
         myClass c=new myClass();
        c.Method1();
        }
     }

答案 1 :(得分:1)

您无法从静态方法中调用非静态方法。

Static =属于班级

否则它属于该类的实例

有关static methods的详细信息,请参阅MSDN参考。

答案 2 :(得分:1)

您无法从静态上下文中调用非静态元素。您必须在静态方法中创建类的实例,并从该实例调用非静态方法。可以在没有实例的情况下调用静态方法。