其实就是三句话
1.References are what they say they are
2.Identifiers are who they say they are
3.Only appropriate operations can be invoked
补充一下
CLR一个很重要的特性就是Type安全。CLR在任何时候都知道某个对象的类型。你可以通过GetType方法获得,由于该方法不是虚函数,因此不能被覆盖,也就是说返回的值是永远真实的。
所谓类型安全就是CLR在运行时会去做安全检查,比如在类型转换时,你可以让一个Student类型对象,转换成一个object对象,而后又将其转化为一个Techer对象,在编译时,能通过,但是在运行时根据类型转换的原则被转化对象只能是转换对象的类型或它的子类型。*所谓的泛型大概就是想在编译期间就提供类型检查。
C#对子类转化父类不需要强制转化,因为这肯定是安全的,而反之则必须要强制转化即加上 (xxType) xxObject.因为这有可能出错。