C#中一共有两种转换方式,隐式转换和显示转换
隐式转换:就是不需要声明就能进行的转换,通俗来说就是小范围内的数据类型转大范围数据类型
显示转换:就是通常说的强制转换,需要在代码中写明要的数据类型。通俗来说就是大范围数据类型转小范围数据类型
示例如下:
一、
string numOne="9";
int numTwo=(int)numOne;
二、
object obj=new myClass();
myClass mc=(myClass)obj;
三、
string num="9";
int value=Convert.toInt32(num);
这三种方式都不太安全,最好用try-catch来保护
四、
myClass mc;
myClass.TryParse("{}",out mc);
DataType.tryParse() 如何转换不成功,会直接给目标变量赋初值;
五、
object obj=new myClass();
myClass mc=obj as myClass;
as在转换之前会先判断当前对象的类型,当类型满足要求后才会进行转换,如果不成功会返回null,所以as的效率更高。注意as运算符只执行引用转换和装箱转换。as 运算符无法执行其他转换,如用户定义的转换,这类转换应使用 cast 表达式来执行 as操作符不会做过的转换操作,当需要转化对象的类型属于转换目标类型或者转换目标类型的派生类型时,那么此转换操作才能成功。
六、
装箱:就是值类型转换为引用类型的过程,是一种特殊的隐式转换。
拆箱:就是引用类型转换为值类型的过程,是一种特殊的显示转换。