C#运算符
在C#里,运算符分为七类。分别是赋值运算符、算术运算符、关系运算符、类型测试运算符、逻辑运算符、空合并运算符、成员访问符。下面我来一一介绍一下这七种运算符。
1 赋值运算符
= += -= *= /= %= &= |= ^= <<= >>= =>
作为最基础以及最简单的运算符,作用就是将一个值通过运算符赋给一个变量或者常量。=当然不用说,就是算术中的等于号。
+=:i+=1 就是i=i+1。-=也一样,i-=1就是i=i-1的缩写。这样既是方便,又是提高了代码的简洁性。
x=y:赋值。
x+=y:递增。
x-=y:递减。
x*=y:x乘以y,结果存储在x中,并返回新的值。
x/=y:x除以y,结果存储在x中,并返回新的值。
x%=y:x除以y,余数存储在x中,并返回新的值。
x&=y:AND赋值,判断x与y,结果存储在x中,并返回新的值。
x|=y:OR赋值,判断x或y,结果存储在x中,并返回新的值。
x^=y:XOR赋值,判断x异或y,结果存储在x中,并返回新的值。
x<<=y:将x左移y位,结果存储在x中,并返回新的值。
x>>=y:将x右移y位,结果存储在x中,并返回新的值。
=>:Lambda表达式。
2 算术运算符
+ - * / % ++ --
+-*/就是数学中的加减乘除号,这没什么好说的。
x%y:取模符号,x除以y,并取余数。
++x/--x:先给x加一/减一,更新x的存储位置,然后返回x值。
x++/x--:先更新x的存储位置,然后给x加一/减一,最后返回x值。
3 关系运算符
最简单常见的是 >(大于)、<(小于)、==(恒等于)、!=(不等于)。
要注意的是,=和==并不一样。=是赋值符号,==是判断两个引用是不是指向同一个实例化对象。这算是零基础新手不理解容易搞混犯错的地方。
除此之外,还有?:
举个例子:i=i<j?3:4 意思就是,如果i确实小于j,true,则i=3(给i赋值为3),如果i大于或者等于j(即不是小于的关系),false,则i=4(给i赋值为4)。
4 类型测试运算符
is:is运算符是类型的兼容性。如果求值后的左操作数可以转换为右操作符中指定的类型(静态),则返回true。
as:as运算符是用于类型的转换。返回左操作数并转换为右操作数中指定的类型(静态)。但是当as返回null时,其中T(x)会引发异常。主要用于隐式转显式,也就是装箱。
5 逻辑运算符
AND运算符 x&y
XOR运算符 x^y
OR运算符 x|y
条件OR运算符 x||y
条件AND运算符 x&&y
6 空合并运算符
??运算符称作null(空)合并运算符。
如果左边不为null,则返回左边的值;不然,返回右边的值。
例如:
int x = y ?? -1;
如果y不是空值,将y值赋予x;如果y是空值,将-1赋予x。
7 成员访问符
点运算符(.)用于成员访问。并且指定类型或命名空间的成员。
例如:
System.Console.Write("hello world!);