为什么说“委托是面向对象 类型安全的”

来源:百度知道 编辑:UC知道 时间:2024/05/30 19:41:55
委托是面向对象是可以理解的,但为什么说是“类型安全的”

类型安全是有关类型操作一种规范。
如:不让不同类型的数据相互转换
int Num =3;
string Str="3";
Num=Str; //错
Num=int.Parse(Str);//对
类型安全要求可以相互转换的不同类型数据在转换时 显式转换

CLR一个很重要的特性就是Type安全。CLR在任何时候都知道某个对象的类型。你可以通过GetType方法获得,由于该方法不是虚函数,因此不能被覆盖,也就是说返回的值是永远真实的。

所谓类型安全就是CLR在运行时会去做安全检查,比如在类型转换时,你可以让一个Student类型对象,转换成一个object对象,而后又将其转化为一个Techer对象,在编译时,能通过,但是在运行时根据类型转换的原则被转化对象只能是转换对象的类型或它的子类型。*所谓的泛型大概就是想在编译期间就提供类型检查。

C#对子类转化父类不需要强制转化,因为这肯定是安全的,而反之则必须要强制转化即加上 (xxType) xxObject.因为这有可能出错。