C#中存在类型转换,如int与double,string与object,string与时间等类型之间互相转换;
类型转换又分为显式转换和隐式转换,隐式转换是指不需要指定转换类型的转换,显式转换则必须指定转换类型。
例1. int与double,(double表示范围大,且带小数,兼容int)
int i = 5;
double d = 6.0;
//d = i; //把int类型转换成double,隐式转换
i = (int)d ; //把double类型转换成int,必须进行显式转换
例2. Object 与 string(或其他),Object是所有类的父类
Object obj = "Object";
string str = "string";
//obj = str; //隐式转换,str本身就是一个Object。子类转换成父类可以进行隐式转换
str = (string)obj; //显式转换,Object包含很多,不止string,所以必须指定转换类型。
例3 . 不相关的两个类型之间要显式转换
如:时间-字符串,数字-字符串,等等
总结:有时需要显式转换,有时不需要,但是任何时候都可以用显式转换。
通俗的说,从小类型向大类型转换时(数字从小范围到大范围;从子类到父类),一般不需要显式转换,相反,则需要显式转换。