运算符是一些特殊的符号,主要用于数学函数、一些类型的赋值语句和逻辑比较方面。C#中提供了丰富的运算符,如算术运算符、赋值运算符、比较运算符等。

简单算术运算符

简单算术运算符执行基本四则运算。

这些运算符是二元左结合运算符。

运算符名称描述
+计算两个操作数的和
-从第一个操作数中减去第二个操作数
*求两个操作数的乘积
/用第二个操作数除第一个。整数除法,截取整数部分到最近的整数

求余运算符

求余运算符(%)是用第二个操作数除第一个操作数,忽略掉商,并返回余数。

求余运算符是二元左结合运算符。

运算符名称描述
%求余用第二个操作数除第一个操作数并返回余数

关系比较运算符和相等比较运算符

关系比较运算符和相等比较运算符是二元运算符,比较它们的操作数并返回bool型值。

关系比较运算符和相等比较运算是二元左结合运算符。

运算符名称描述
<小于如果第一个操作数小于第二个操作数,返回true,否则返回false
>大于如果第一个操作数大于第二个操作数,返回true,否则返回false
<=大于等于如果第一个操作数大于等于第二个操作数,返回true,否则返回false
>=小于等于如果第一个操作数小于等于第二个操作数,返回true,否则返回false
==等于如果第一个操作数等于第二个操作数,返回true,否则返回false
!=不等于如果第一个操作数不等于第二个操作数,返回true,否则返回false

比较操作和相等性操作

对于大多数引用类型来说,比较它们的相等性时,只比较它们的引用。

  • 如果引用相等,也就是说,如果他们指向内存中相等的对象,那么相等性比较为true,否则为false,即使内存中两个分离的对象在所有其他方面都完全相等。
  • 这称为浅比较。

string类型对象也是引用类型,但它的比较方式不同。比较字符串的相等性时,将比较它们的长度和内容(区分大小写)。

  • 如果两个字符串有相同的长度和内容(区分大小写),那么相等性比较返回true,即使他们占用不同的内存区域。
  • 这称为深比较。

递增运算符和递减运算符

递增运算符对操作数加1.递减运算符对操作数减1.这两个运算符是一元的,并有两种形式:前置形式和后置形式,它们会产生不同的效果。

  • 在前置形式中,运算符放在操作数之前,例如:++x 和 --y。
  • 在后置形式中,运算符放在操作数之后,例如:x++ 和 y--。
运算符名称描述
++前置递增++var变量的值加1并保存,返回变量的新值
后置递增var++变量的值加1并保存,返回变量递增之前的旧值
--前置递减--var变量的值减1并保存,返回变量的新值
后置递减var--变量的值减1并保存,返回变量递减之前的旧值

比较这两种运算符的前置和后置形式。

  • 无论运算符使用的是前置形式还是后置形式,在语句执行之后,最终放在操作数的变量中的值还是相同的。
  • 唯一不同的是运算符返回给表达式的值。
表达式:x=10返回给表达式的值计算后的变量的值
前置递增++x1111
后置递增x++1011
前置递减--x99
后置递减x--109

条件逻辑运算符

逻辑运算符用于比较或否定它们的操作数的逻辑值,并返回逻辑值。

逻辑与(AND)和逻辑或(OR)运算符是二元左结合运算符。逻辑非(NOT)是一元运算符。

运算符名称描述
&&如果两个操作数都是true,结果为true,否则为false
\\ 如果至少一个操作数是true,结果为true,否则为false
!如果操作数是false,结果为true,否则为false

逻辑运算符

按位逻辑运算符常用语是指位组(bit pattern)的方法参数。

除按位非逻辑运算符以外,这些运算符都是二元左结合运算符。按位非运算符是一元运算符。

运算符名称描述
&位与产生两个操作数的按位与。仅当两个操作数都为1时结果位才是1
\ 位或产生两个操作数的按位或,只要任意一个操作位为1结果位就是1
^位异或产生两个操作数的按位异或,仅当一个而不是两个操作数为1时结果位为1
~位非操作数的每个位都取反。该操作得到操作数的二进制反码(数字的反码是其二进制形式按位取反的结果。也就是说,每个0都变成1,每个1都变成0)

二元按位运算符比较它的两个操作数中每个位置的相对应位,并依据逻辑操作设置返回值中的位。

赋值运算符

赋值运算符对运算符右边的表达式求值,并用该值设置运算符左边的变量表达式的值。

赋值运算符是二元右结合运算符。

运算符描述
=简单赋值,计算右边表达式的值,并把返回值赋给左边的变量或表达式
*=复合赋值,var = expr 等价于 var = var (expr)
/=复合赋值,var /= expr 等价于 var = var / (expr)
%=复合赋值,var %= expr 等价于 var = var % (expr)
+=复合赋值,var += expr 等价于 var = var +(expr)
-=复合赋值,var -= expr 等价于 var = var - (expr)
<<=复合赋值,var <<= expr 等价于 var = var << (expr)
>>=复合赋值,var >>= expr 等价于 var = var >> (expr)
&=复合赋值,var &= expr 等价于 var = var & (expr)
^=复合赋值,var ^= expr 等价于 var = var ^ (expr)
\=复合赋值,var \= expr 等价于 var = var \(expr)
最后修改:2021 年 11 月 02 日 03 : 22 PM
如果觉得我的文章对你有用,请随意赞赏