类型
- 隐式类型转换 - 这些转换是 C# 默认的以安全方式进行的转换, 不会导致数据丢失。例如,从小的整数类型转换为大的整数类型,从派生类转换为基类。
把代码放入checked{}代码块内,默认行为从unchecked改成checked溢出等会报错。
不同于C++,long/int等不能->bool类型 - 显式类型转换 - 显式类型转换,即强制类型转换。显式转换需要强制转换运算符,而且强制转换会造成数据丢失。
String<–>数字类型的显示转换类型:
(1)System.Convert
例如System.Convert.ToDouble()
还有
更多查看菜鸟编程 所有类型都支持ToString()方法,提供一个类型的字符串表示
(2)bool TryParse()
转换失败时,不会报错,返回false,例如double.TryParse()
TryParse()代替无效转型异常。
(3) string->int :
用int.Parse(string),不能直接(int)string.
注意事项:
(1) C# 中对 double 类型的数据取整
可以使用 convert.ToInt32() 方法,也可使用 int 强制转换为整数,使用 int 时并不存在四舍五入的情况,而是直接将后面的小数位数丢掉。
(2) 对 null 值的处理方法:
Convert.ToInt32(null) 会返回 0 而不会产生任何异常,但 int.Parse(null) 则会产生异常。
(3)对数据进行四舍五入时候的区别
- Convert.ToInt32(double value) 如果 value 为两个整数中间的数字,则返回二者中的偶数;即 3.5 转换为 4,4.5 转换为 4,而 5.5 转换为 6。不过 4.6 可以转换为 5,4.4 转换为 4 。
- int.Parse(“4.5”) 直接报错:“输入字符串的格式不正确”。
- int(4.6) = 4 Int 转化其他数值类型为 Int 时没有四舍五入,强制转换。
- 对被转换类型的区别:
int.Parse 是转换 String 为 int
Convert.ToInt32 是转换继承自 Object 的对象为 int 的(可以有很多其它类型的数据)。你得到一个 object 对象, 你想把它转换为 int, 用 int.Parse 就不可以, 要用 Convert.ToInt32。
案例: