从技术上讲,我不知道该语言限制内部类使用静态元素的任何原因。非静态内部类可以通过使用将(以前)封闭实例作为构造函数参数的普通类来模拟。当然,关于可见性规则和可见性范围,几乎没有什么区别。
我认为这是一种语言设计决策,主要是因为非静态内部类中的静态访问令人困惑且不直观(Outer.Inner.StaticMember)。

从技术上讲,我不知道该语言限制内部类使用静态元素的任何原因。非静态内部类可以通过使用将(以前)封闭实例作为构造函数参数的普通类来模拟。当然,关于可见性规则和可见性范围,几乎没有什么区别。
我认为这是一种语言设计决策,主要是因为非静态内部类中的静态访问令人困惑且不直观(Outer.Inner.StaticMember)。