【C#学习】11操作符详解(中)一元操作符


一元操作符:只有一个操作数跟在操作符后

1.最不常用:取址操作符 " & " ,取引用操作符 " * "

2.+ - 操作符

“+” “-“操作符进行数学运算时与数学上的正负运算符几乎没有什么差别,需要注意的一点是:由于带有符号的数据类型其最大值,最小值在绝对值上不对称,所以,如果”+” "-"操作符运用不当,就有可能会造成值溢出。

3.求反操作符:~

对一个在二进制级别上的值进行按位取反
在这里插入图片描述
计算机中求相反数的办法:按位取反再加一
在这里插入图片描述

4.取非操作符:!

只能用于操作布尔类型的值
实际应用示例:
在这里插入图片描述

5.前置的自增与自减

先自增,后传值

int x = 100;
int y = ++x;
//x = 101,y = 101

6.类型转换操作符:T(x)

在这里插入图片描述

(1)什么是类型转换?为什么需要类型转换?

在这里插入图片描述

(2)隐式类型转换(implicit)

代码不用明确告诉编译器需把某一变量的值转换成另一数据类型,编译器会自动完成。

隐式类型转换的几种情况:
不损失精度;
子类向父类转换;
装箱

<1>不损失精度
在这里插入图片描述
在这里插入图片描述

<2>子类向父类转换
注意:所有真正的面向对象编程的语言,都支持子类向父类的隐式类型转换。
在这里插入图片描述
问题:为什么t变量已经把它内存当中存储的地址交给了h变量,也就是h,t共同引用了刚刚创建的Teacher类的实例,而h变量依然没有Teach()方法呢?
因为:在C#中规定,当试图拿一个引用变量去访问它所引用的实例的成员时,只能访问到引用变量的类型所具有的成员。

<3>装箱
详见07节

(3)显式类型转换(explicit)

明确地告诉编译器需要把某一变量的值转换成另一数据类型

显式类型转换的几种情况:
有可能丢失精度(甚至发生错误)的转换,即cast;
使用convert类
ToString方法与各种数据类型的Parse/TryParse方法
拆箱

<1>有可能丢失精度(甚至发生错误)的转换,cast——即利用(T)x
cast:译为 铸造(很形象)
(T)x :T为目标数据类型,x为需转换的变量
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

注意:数值范围;正负号

<2>使用concert类
某些类型之间不能利用cast进行转换,比如说 String —— Int,这两个类型之间差距太大,需要借助工具类来进行转换。
Convert类,就相当于类型转换枢纽,它几乎可以把任何一种数据类型转换成目标数据类型。

一个典型的情况:想让文本框显示一个数值(那么就是需要把数值类型数据转换成字符串类型数据)
有两种方法
第一种:调用convert类的ToString()静态方法
在这里插入图片描述

<3>第二种:调用数值类型数据的ToString()实例方法
Object数据类型是所有类型的基类,它带有ToString()方法,那么C#中所有数据类型都带有ToString()方法。

Parse/TryParse方法
在这里插入图片描述

<4>拆箱
详见07节

(4)(T)x类型转换操作符是某种方法的" 简记法 "

在这里插入图片描述
在这里插入图片描述

7.await

太深奥,先不做了解

发布了29 篇原创文章 · 获赞 3 · 访问量 952

猜你喜欢

转载自blog.csdn.net/weixin_44813932/article/details/103802134