在内部/本地/匿名类方面,Java和C#之间的根本区别是什么?

5 c# java class

内部/本地/匿名类方面,Java和C#之间的根本区别是什么?

Jon*_*eet 8

C#没有Java内部类的等价物 - 它只有嵌套类型(如Java的"静态"嵌套类).

访问规则略有不同 - 在Java中,外部类可以访问其嵌套类的私有成员,反之亦然.在C#中,嵌套类可以访问外部类的私有成员,但不能反过来.

C#没有像Java这样的匿名内部类,但它确实有匿名方法和lambda表达式,这是实现大多数匿名内部类通常用于的大多数方法.两种机制的变量捕获是不同的 - 有关更多详细信息,请参阅我关于闭包的文章.