对.Net Framework的认识(2)
类和接口的访问权限默认是internal,接口成员不能添加访问修饰符,默认是public,类成员默认是private的。 C#中静态类不能实现接口,它里面所有的成员(包括成员类型,方法等)必须是静态的。 CLR不支持partial,那只是C#的语法,所以partial class必须用C#写。 virtual和override,前者用于父类标识可重构的成员,后者用于子类的重构,virtual方法最好少用,因为性能会降低。因为非virtual方法,CLR可以很快定位到这个方法的出处,而virtual方法,CLR得先去找调用该方法的对象是哪个类型的,在确定类型之后才能定位方法的出处,如果派生层次很多很复杂的话,性能消耗就会比较大。 sealed标识密封类,即不可继承类,不能同时使用virtual关键字,类申明成sealed可以提高性能,因为可以减少很多检查和验证。 new除了实例化对象外,当子类的方法签名和父类一样时,用new可以更清楚地表达子类的方法和父类没有任何关系,如果不用的话,编译时会警告,但还是会隐藏父类方法,使用子类自己定义的方法。 常量的值必须在编译时就确定,编译后,CLR会把常量的值保存在程序集的元数据中,如果代码中使用到常量,CLR会去元数据中查找并把常量值放入IL中。常量如果为引用类型(String除外),则只能赋值null。类中的常量字段引用方式和静态字段一样