C# 运算符

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

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


运算符类别 运算符

基本

x.y

f(x)

a[x]

x++

x--

new

typeof

checked

unchecked

->

一元

+

-

!

~

++x

--x

(T)x

True

False

&

sizeof

乘法

*

/

%

加法

+

-

变换

<<

>>

关系和类型检测

<

>

<=

>=

is

as

相等

==

!=

逻辑“与”

&

逻辑 XOR

^

逻辑“或”

|

条件 AND

&&

条件 OR

||

条件运算

?:

赋值

=

+=

-=

*=

/=

%=

&=

|=

^=

<<=

>>=

??

<script type="text/Javascript"> var ExpCollDivStr = ExpCollDivStr; ExpCollDivStr = ExpCollDivStr + "ctl00_LibFrame_ctl606010322,"; var ExpCollImgStr = ExpCollImgStr; ExpCollImgStr = ExpCollImgStr + "ctl00_LibFrame_ctl60img,"; </script> 算术溢出

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

  • 整数算术溢出或者引发 OverflowException,或者丢弃结果的最高有效位。整数被零除总是引发 DivideByZeroException

  • 浮点算术溢出或被零除从不引发异常,因为浮点类型基于 IEEE 754,因此可以表示无穷和 NaN(不是数字)。

  • 小数算术溢出总是引发 OverflowException。小数被零除总是引发 DivideByZeroException

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值