C#自动类型转换与强制类型转换的讲解
自动类型转换
隐式类型转换 -这些转换是C#默认的以安全方式进行的转换,不会导致数据丢失。例如,从小的整数类型转换为大的整数类型,从派生类转换为基类。
转换规则
从存储范围小的类型到存储范围大的类型。
整数具体规则为:
byte→short(char)→int→long→float→double
也就是说byte类型的变量可以自动转换为short类型,示例代码:
byteb=10; shortsh=b;
在类型转换时可以跳跃。示例代码:
byteb1=100; intn=b1;
强制类型转换
显式类型转换 -显式类型转换,即强制类型转换。显式转换需要强制转换运算符,而且强制转换会造成数据丢失。
转换规则
从存储范围大的类型到存储范围小的类型。
具体规则为:
double→float→long→int→short(char)→byte
例如:
doubled=5673.74; inti; i=(int)d;
1.Convert.ToInt32() 2. int.Parse()
Convert.ToInt32() 则可以将多种类型(包括object 引用类型)的值转换为int 类型,因为它有许多重载版本:
- publicstaticintToInt32(object);
- publicstaticintToInt32(bool);
- publicstaticintToInt32(byte);
- publicstaticintToInt32(char);
- publicstaticintToInt32(decimal);
- publicstaticintToInt32(double);
- publicstaticintToInt32(short);
- publicstaticintToInt32(long);
- publicstaticintToInt32(sbyte);
- publicstaticintToInt32(string);
Int32.Parse()表示将包含数字的字符串转换为32位有符号整数,属于内容转换
- 如果string为空,则抛出ArgumentNullException异常;
- 如果string格式不正确,则抛出FormatException异常;
可以看出来,Convert.ToInt32() 的功能是最强大的,它把Int32.Parse()功能包括了,也是说是Int32.Parse()是Convert.ToInt32() 的一种特殊情况。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对毛票票的支持。如果你想了解更多相关内容请查看下面相关链接