C#中有个名词叫“类型安全”,这是什么意思?有不安全的类型吗

来源:百度知道 编辑:UC知道 时间:2024/07/08 02:15:51

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

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

类型安全应该算是CLR最重要的特性之一了,在运行时,CLR总是知道一个对象的类型。在C#中可以调用GetType()来返回调用对象的类型,并且由于GetType()继承于System.Object对象,并且为非虚的方法,所以一个类型不可能通过重写此方法而伪装成另一种类型。
由于在开发的过程中,经常会需要将一个对象从一种类型转换为其他的类型,所以CLR允许将一个对象强制转换成它本身所引用的类型或派生其的基类型。一个对象向其父类的转换CLR认为是一种安全的隐式转换,不需要任何特殊的然而需要将一个对象转换为其派生类型时,则需要进行显示的转换,因为这样的转换可能在运行时失败。

反反复复水水水水

有类型安全吗?我记得没有哈,

科技骨干狗狗股骨狗屎