- 整数类型的Literal可使用10/16进制符号, 16进制是在前面加上0x前缀
int x = 127;
long y = 0x7F;
- 实数 使用小数点,可以使用指数形式
数值Literal的类型判断:
默认情况下,编译器会推断一个数值Literal是double还是整数类型:
- 如果包含小数点,或以指数形式展现,那么就是double类型
- 否则literal的类型是下面列表中第一个能容纳该数值的类型: int, unit, long,ulong
数值的后缀
- float float f = 1.0F
- double double d = 1D;
- decimal decimal d = 1,0M
- uint unit i = 1U;
- long long i = 1L;
- ulong ulong i = 1UL;
decimal
- 所有的整数类型可以被隐式转换为decimal类型
- 反过来则必须进行显式转换
checked
- checked会告诉运行时, 如果整型的表达式或语句超出了该类型的极限,那么就会抛出overflowexception
- checked操作符对 ++ ,--,+, -, *, / 起作用
- checked可以用于表达式或语句
- checked 对float和double不起作用
int a = 1000000;
int b = 1000000;
int c = checked(a*b);
checked {
int d = a*b;
}
- 想不检查 用unchecked
8,16 位整数类型
没有自己的算术运算符, c#会按需对它们进行隐式转换到大一点的整数类型
short x = 1, y =2;
short z = (short)( x +y);
WeChat Screenshot_20190712100804.png
NaN
- 使用 == 时, NaN不等于任何一个值,包括NaN
- 使用Object.Equals()方法时, 两个NaN是相等的
- 验证某个值是否为NaN float.isNan() double.IsNan()
bool
- bool类型无法和数值类型进行相互转换
- == 和!= 操作符在用来比较相等性的时候,通常都会返回bool
- 对于值类型, == 和!= 就是比较他们的值
- 对于引用类型,默认情况下,就是比较他们的引用
- && || 可以用来判断与和或
- && || 都有短路机制
- & 和 | 也可以用来判断与和或的条件, 但是没有短路机制,so很少用来条件判断上
- & | 当使用于数值的时候,& 和 | 执行的是按位操作
string 字符串连接
- 操作符
- 如果其中一个操作数不是string类型,那么会调用他的toString方法
- 大量使用+ 做字符串连接的效率很低,最好使用StringBuilder
string interpolation
$"dfdfdf{x}sdfdf"
string 比较
- string不支持>, <等比较操作符
- 需要使用CompareTo方法
网友评论