C#_02.16_基础七_.NET表达式&运算符

C#_02.16_基础七_.NET表达式&运算符

一、字面量:

字面量和变量的关系来理解字面量会比较简单:

 

因此字面量是源代码中键入已知的(我们知道它是多少的)值。也可以理解是等号右边的非创建实例的值。可以是布尔、字符、null等。

字面量可以分为:

² 数字字面量;1,2,3-1-2-3

² 实数字面量;1.9double类型); 0.3Ffloat类型);0.3e-19

² 字符字面量;a

² 字符串字面量;a

² 布尔字面量;true / false

 

其中字符字面量会有一堆的转义字符:

 

                        (图片引自C#图解)

 

二、运算符的优先级:

 

                                  (图片引自C#图解)

 

三、运算符:

在这个当中需要注意的是:

1

逻辑运算符:

 

2、位移运算符:

位移运算符意思是堆与一个数值的二进制进行左移或者右移,左移时右边用0补足,右移时益处的部分不管他:

 

 

3、条件运算符:

 条件运算符是三元运算符,其实使用if else是完全可以实现和三元运算符同样功能的,但是我们为什么要这样子做呢?因为if else是控制流语句,返回的应该是两种行为中的一个,而三元运算符是运算符,返回的应该是值。

4、typeof大法:

Typeof运算符作用是获取指定类的信息:

类如下:

 

结果如下:

 

另外还有一个方法GetType();这个方法对每一个类型的实例都有效,可以获得对应实例的类型名。Eg

 

四、关于语句的一点点思考:

 在说关于运算符的时候书本上面提到了一点是:运算符完成操作可能产生副作用,但是我并不明白副作用是什么意思,现在明白了:

 运算符进行操作就会产生一个返回值,如1+2,这个运算符进行操作就会产生返回值3.这个是我们都知道的,但是其他的一些运算符比如“=”,这个运算符也会产生返回值。举栗子:

X=10

以上表达式使用了赋值运算符,我们都知道把X的值赋值为10,但是事实上这个我们想要的效果是一个副作用。怎么说呢?运算符进行操作会产生返回值,X=10是赋值操作也是会产生返回值,返回值是X的新值,也就是说X=10这个操作返回了一个值“10”,这个才是这个运算符的正规的效果,而使x的值变成了10是一个副作用,因为原本运算符的操作就是为了返回值,让x=10只是这一个操作的一个副作用,在内存中存储了x的值,分配了内存空间,这个是副作用,而我们却没有用变量接收这个赋值操作的返回值。所以有一些运算符副作用才是我们想要的。我们可以进行测试:

 

 

以上测试我们发现:赋值运算是返回了a的新值。

Switch语句下面的每一个分支都需要有跳转语句跳出来:如breakreturnthrow之类的。

 

 

原文地址:https://www.cnblogs.com/heisehenbai/p/6848898.html