操作符
- (T)x 强制类型转换操作符
例子
string str1 = Console.ReadLine();
string str2 = Console.ReadLine();
Console.WriteLine(str1+str2);
窗口内输入:
12
34
回车后显示:
1234
这里是字符串相加,所以得到的是字符串1234
将字符串类型转换成整数类型
string str1 = Console.ReadLine();
string str2 = Console.ReadLine();
int x = Convert.ToInt32(str1);
int x = Convert.ToInt32(str2);
Console.WriteLine(x+y);
窗口内输入:
12
34
回车后显示:
46
隐式类型转换
1.不丢失精度的转换
例子
int x =int.MaxValue;
long y = x;
cw(y);
2.子类向父类的转换
h.后面只能看到think和eat
当你试图用一个引用变量去访问它所引用着的实例的成员的时候,这个时候只能访问访问到这个变量的类型所具有的成员。
a.后面只能看到eat
显式类型转换
1.(T)x 即(cast 铸造)
y=0,只能把x的低16位赋给y
Convert相当于类型转换的枢纽
如图为 ToString方法
如图为直接调用ToString
显式类型转换
隐式类型转换
算术运算符:
1.乘法
int32
double
double(数值提升)
2.除法
z = 1
整型除零异常
z = 1.25
浮点类型没有除零异常
c = NaN(not a number)
x = 1.25(数据提升)类型转换操作符是一元操作符,运算优先级高于除法运算符
结果是浮点类型的1
3.余数
0123456789…
余数0.5
4.加法
double类型的7(类型提升)
123abc
位移操作符:
1.左移<<
2.右移
溢出 无论正数负数左移最高位补位都是0 右移正数补0负数补1 在不产生溢出的情况下,左移乘二右移除二
关系操作符:
比较是布尔类型的值
关系操作符还可以比较字符类型
true char是归类于整数类型的
a对应97 A对应65
字符串比较 不能比较大小,只能比相等不相等
false
忽略大小写 都转成一个格式
类型检验操作符:is as
布尔类型 检验的是变量所引用的实例
I teach programming
I teach programming
判断o这个对象和teacher一样不一样,如果一样,把对象的地址交给t这个变量,否则none给t
逻辑与逻辑异或和逻辑或
1.位与
2.位或
3.位异或
条件与 条件或
1.条件与
hello 左右两边都为真
2.条件或
hello 左右两边只要一边为真
条件与和条件或的短路效应
3
4
3
Hello 4
null值合并操作符
100 true
?就是Nullable
null合并
?? 就是如果是null值就用什么值代替
条件操作符:
pass 占用了八行
但用条件操作符:
为真则输出冒号左边的值,为假输出右边
可以用括号把条件扩起来,增加可读性
赋值和lambda表达式:
1.+=
x += 1 即x = x + 1
赋值操作符从右向左运算