当前位置:首页 > Windows程序 > 正文

三、C# 运算符和控制流

2021-05-24 Windows程序

通常运算符划分为3大类:

一元运算符、二元运算会、三元运算符,它们对应的操作数分别是1个、2个、3 个。

结合性和优先级顺序。

二元运算会是从左向右结合的,相反赋值运算符是从右向左结合的。

 

char类型存储的是字符而不是数字,但它是一个整型。

 

1、浮点型的特殊性

 

float和double有一些特殊性,

一个float具有7位精度。只能有7位精度的有效数字。其它会被截断。存在舍入误差。

 

 

浮点类型造成非预期的不相等

比较两个值是否相等的时候,浮点类型的不准确性可能造成非常严重的后果。有的时候,本来

应该相等的值被错误地判断为不相等。

 

2、递增和递减运算符

 

运算符的位置决定了所赋的值是操作数计算之前还是之后的值。

运算符采用后缀还是前缀形式,影响的只是在递增之前还是之后进行赋值,被影响的变量永远会改变。

 

线程安全的递增和递减

虽然递增和递减运算符简化了代码,但是两者执行的都不是原子级别的运算。

在运算符执行期间,可能发生线程上下文切换,并可能造成一个竞争条件。

 

 

3、常量表达式

const int a=60*60*24;

根据定义,常量表达式是C#编译器在编译时完成求值的表达式(而不是在程序运行时才能求值)

 

 

4、作用域和声明空间

作用域(scope)和声明空间(declaration space)是指由一个代码块限定的层次化上下文。

作用域是一个特定的源代码区域,在这个区域中,使用一个项目的未限定名称来引用它

完全合法,因为名称是引用是唯一的,是无歧义的。

在一个区域中,如果声明的名称具有唯一性,这个空间就是声明空间。

 

使用域限制了可访问性。

 

5、逻辑布尔运算符

OR运算符   ||                 两者一为true,返回true

AND运算符  &&            两者皆为true,,返回true

XOR运算符    ^               两者只能有一为true,返回true

逻辑求反运算符    !        取反

 

6、条件运算符

    ?     :

 

7、空接合运算符

 

从C#2.0开始,执行空值检查的条件运算符有了一个简化语法,称为空接合运算符,

它检查一个表达式是否为null;如果为null,就返回第二个表达式。或者返回第一个表达式

expression1??expression2;

 

 

3.6、按位运算符

 

位和字节

计算机的所有值都表示成1和0的二进制格式。这些1和0为位或者比特bit。

8位分成一组,称为字节(byte)。

在每一个连续的位都对应于2的一个乖幂。

 

1、移位运算符

如:

1>>2

1<<2

 

左移:移位后在右边留下空位将由0来填充

右移:左边的空位,正数由0补,负数由1补

 

2、按位运算符

 

&  与

|    或

^    异或

~    取反

 

 

3.9 C#预处理器指令

 

C#预处理哭指令是在在编译时调用的。

预处理器指令告诉C#编译器要编译哪些代码,并指出如何处理特定的错误和警告。

 

每一个预处理器指令都以一个#开头,而且必须在一行中写完。换行符,标志着预处理

器指令的结束,不是分号。

在网上找记录下来。

弄清附录B的井字棋彻底搞清楚。

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/70458.html