日期:2014-05-17  浏览次数:21381 次

C#的内部类不能直接访问外部类的非静态成员?
下面的几行程序,编译没有问题:

    class outer
    {
        public static int x;
        public class inner
        {
            inner() { Console.WriteLine(x); }
        }
    }

但是如果把public static int x的static去掉,编译就不过了。
为什么C#的语法设计是内部类只能访问外部类的静态成员? java就没有这个限制。
------解决方案--------------------
静态成员为什么可以访问,因为仅此一份,
非静态成员是每个实例对应有一个,首先要有实例,没有实例当然无法访问了。