C#的内部类不能直接访问外部类的非静态成员?
下面的几行程序,编译没有问题:
class outer
{
public static int x;
public class inner
{
inner() { Console.WriteLine(x); }
}
}
但是如果把public static int x的static去掉,编译就不过了。
为什么C#的语法设计是内部类只能访问外部类的静态成员? java就没有这个限制。
------解决方案--------------------静态成员为什么可以访问,因为仅此一份,
非静态成员是每个实例对应有一个,首先要有实例,没有实例当然无法访问了。