您的位置:首页 > 编程语言 > C#

C# 运算符

2015-07-11 17:06 621 查看
C# 提供大量运算符,这些运算符是指定在表达式中执行哪些操作的符号。 整型运算包括 ==、!=、<、>、<=、>=、binary +、binary -、^、& |、~、++、-- 和 sizeof(),通常在枚举时允许这些运算。 此外,很多运算符可被用户重载,由此在应用到用户定义的类型时更改这些运算符的含义。

下表列出了按优先级顺序分组的 C# 运算符。 每个组中的运算符具有相同的优先级。

运算符类别
运算符
基本
x.y

f(x)

a[x]

x++

x--

new

typeof

Checked

Unchecked

default(T)

delegate

sizeof

->
一元
+x

-x

!x

~x

++x

--x

(T)x

await

&x

*x
乘法
x * y

x / y

x % y
加法
x + y

x - y
移位
x << y

x >> y
关系和类型检测
x < y

x > y

x <= y

x >= y

is

as
相等
x == y

x != y
逻辑“与”
x & y
逻辑“异或”
x ^ y
逻辑“或”
x | y
条件“与”
x && y
条件“或”
x || y
null 合并
x ?? y
条件运算
?:
赋值和 lambda 表达式
x = y

x += y

x -= y

x *= y

x /= y

x %= y

x &= y

x |= y

x ^= y

x <<= y

x >>= y

=>
算术运算符(+、-、*、/)产生的结果可能会超出涉及的数值类型可能值的范围。 详细信息应参考有关特定运算符的章节,而一般情况下:

整数算术溢出或者引发 OverflowException,或者丢弃结果的最高有效位。 整数被零除总是引发 DivideByZeroException。
浮点算术溢出或被零除从不引发异常,因为浮点类型基于 IEEE 754,因此可以表示无穷和 NaN(不是数字)。
小数算术溢出总是引发 OverflowException。 小数被零除总是引发 DivideByZeroException。

当发生整数溢出时,产生的结果取决于执行上下文,该上下文可为 checked 或 unchecked。 在 checked 上下文中引发 OverflowException。 在未选中的上下文中,放弃结果的最高有效位并继续执行。 因此,C# 使您有机会选择处理或忽略溢出。

除算术运算符以外,整型之间的强制转换也会导致溢出(例如,将 long 强制转换为 int)并受 checked 或 unchecked 执行的限制。 然而,按位运算符和移位运算符永远不会导致溢出。

注:关于逻辑“与”、逻辑“异或”、逻辑“或”这几个操作符不明白可以参考离散数学等教材。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c#