using System;
class App
{
    static int i;
    private static void Main()
    {
        App t = new App();
        t.test();
        Console.ReadKey();
    }    private void test()
    {
        i = 10;
        Console.WriteLine(i);
    }
}
在上面的代码变量i是静态变量。test是实例方法。在这个实例方法里面为什么能访问静态变量?

解决方案 »

  1.   

    如果是public的静态成员,任何程序都能调用
    本类的实例可以调用任何本类的静态成员,无论是public、protected、internal和private的。 
    静态成员在整个程序进程中只保留一份,其生存期是全局的。
      

  2.   

    因为都在一个类里面
    你把static去掉后,一样可以调用
      

  3.   

    为什么不呢 
    基础问题
    如果是public的静态成员,任何程序都能调用
    本类的实例可以调用任何本类的静态成员,无论是public、protected、internal和private的。  
    静态成员在整个程序进程中只保留一份,其生存期是全局的。
      

  4.   

    实例方法访问静态变量那是自然的,但是静态方法就不能访问实例变量,你的Main方法中之所以可以访问到test方法是因为你的 App t = new App();这句话已经实例化了以个对象,及你的实例成员变量已经在内存中存在了,这时静态方法当然也就能够访问了!
      

  5.   

    public static 声明的方法或者变量 是类级的,只要一个类的实例没有被释放,那么任何其他类都可以通过
    类.方法名(或变量名)直接引用