无法在静态方法中使用实例变量

时间:2015-09-14 19:36:28

标签: c# oop

为什么我们无法在instance variable中使用static method? 我知道静态方法是在不创建类实例的情况下调用的,但是什么限制了静态方法中使用的非静态变量?

class MyClass
{
    // non-static instance member variable
    private int a;
    //static member variable
    private static int b;

    //static method
    public static void DoSomething()
    {
        //this will result in compilation error as “a” has no memory
        a = a + 1;
        //this works fine since “b” is static
        b = b + 1;
    }
}

1 个答案:

答案 0 :(得分:7)

尝试在static方法中放置一个非静态变量会让编译器想知道我应该更新这个变量的哪个实例? sqljdbc4.jar方法与类实例无关,因此当没有实例存在时,无法在实例上调用实例变量。

相关问题