今天在看Java方面的书籍的时候看到这样一段话,说在Java中的内部类不能包含静态方法和字段,之后嵌套类中可以包含(内部类和嵌套类说的都是类中的子类,只不过嵌套类指的是静态的子类,用static修饰),我就在想C#中是不是也有这样的要求呢。于是打开编译器开始尝试,结果发现C#中的内部类是可以包含静态字段和方法的,不过在除该内部类所在的外部类之外的其他类中访问这些静态字段和方法的时候是不能通过内部类对象来访问的,只能通过“内部类名.静态字段/方法来访问的”。
在Java中创建内部类对象的时候,首先需要创建外部类对象,然后通过这个外部类对象来创建内部类对象,如下:
public class A{
public class B{
}
public B getB(){
return new B();
}
}
那么创建B的对象需要这样写:
A a=new A();
A.B b= a.new B();
或者
A a=new A();
A.B b=a.getB();
而在C#中则可以这样写:
A.B b=new A.B();