引用类型,隐式转换列表,三元操作符
2014-02-20 17:18
309 查看
C#的值类型包括:结构体(数值类型,bool型,用户定义的结构体),枚举,可空类型。 C#的引用类型包括:数组,用户定义的类、接口、委托,object,字符串。
隐式数值转换包括以下几种
从sbyte 类型到short, int, long, float, double, 或 decimal 类型
从 byte 类型到short, ushort, int, uint, long, ulong, float, double, 或decimal 类型
从 short 类型到int, long, float, double, 或decimal 类型
从 ushort 类型到int, uint, long, ulong, float, double, 或decimal 类型
从 int 类型到long, float, double, 或decimal 类型
从 uint 类型到long, ulong, float, double, 或decimal 类型
从 long 类型到float, double, 或decimal 类型
从 ulong 类型到float, double, 或decimal 类型
从 char 类型到ushort, int, uint, long, ulong, float, double, 或decimal 类型
从 float 类型到double 类型
其中从int, uint, 或 long 到float 以及从long 到double 的转换可能会导致精度下
降但决不会引起数量上的丢失其它的隐式数值转换则不会有任何信息丢失
结合我们在数据类型中学习到的值类型的范围我们可以发现隐式数值转换实
际上就是从低精度的数值类型到高精度的数值类型的转换
从上面的10 条我们可以看出不存在到char 类型的隐式转换这意味着其它整型
值不能自动转换为char 类型这一点需要特别注意
三元操作符?: 有时也称为条件操作符
对条件表达式b? x: y 先计算条件b 然后进行判断如果b 的值为true 计算x的值
运算结果为x 的值否则计算y 运算结果为y 的值一个条件表达式从不会又计算x 也计算y 条件操作符是向右关联的也就是说从左向右分组计算例如
表达式a? b: c? d: e 将按a? b: (c? d: e)形式执行
相关文章推荐
- 十二章 类————初始化const或引用类型要用初始化列表,隐式转换问题等,友元
- 数据类型,隐式转换以及json,对象,引用类型,预解析 视频教程
- js引用类型和基本类型、隐式类型转换以及强制类型转换面试题
- C/C++中的隐式类型转换
- Swift:(十一)、构造器、自动引用计数、循环引用问题解决、类型转换
- JavaScript隐式类型转换
- 避免使用隐式类型转换
- C++中的隐式类型转换
- [编写高质量代码:改善java程序的151个建议]建议65 避开基本类型数组转换列表陷阱
- C#中的不同类型之间的显式与隐式转换实现
- python如何将一个多位数数值转换为列表类型
- 第一周第一天([用文档编辑Java并运行] [Java中数据类型的转换][标题的使用] [引用的使用] [代码块的使用] [图片的使用] [JDK] [Eclipse])
- [C++再学习系列] 隐式类型转换与转换操作符
- +=隐式类型转换
- C隐式类型转换与运算符优先级
- 工作总结 无法确定条件表达式的类型,因为“<null>”和“System.DateTime”之间没有隐式转换 解决办法 object——Nullable<T> (可空类型)
- [c++基础] 四种类型转换和隐式类型转换
- 隐式类型转换
- JavaScript隐式类型转换
- 浅析JavaScript中的隐式类型转换