ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/csref/html/vclrfcsharpoperators.htm
| C# 程序员参考 |
C# 提供大量运算符,这些运算符是指定在表达式中执行哪些操作的符号。C# 预定义通常的算术和逻辑运算符以及在下表中显示的各种其他运算符。此外,很多运算符可被用户重载,由此在应用到用户定义的类型时更改这些运算符的含义。
| 运算符类别 | 运算符 |
|---|---|
| 算术 | + - * / % |
| 逻辑(布尔型和按位) | & | ^ ! ~ && || true false |
| 字符串串联 | + |
| 递增、递减 | ++ -- |
| 移位 | << >> |
| 关系 | == != < > <= >= |
| 赋值 | = += -= *= /= %= &= |= ^= <<= >>= |
| 成员访问 | . |
| 索引 | [] |
| 转换 | () |
| 条件 | ?: |
| 委托串联和移除 | + - |
| 创建对象 | new |
| 类型信息 | as is sizeof typeof |
| 溢出异常控制 | checked unchecked |
| 间接寻址和地址 | * -> [] & |
算术溢出
算术运算符(+、-、*、/)产生的结果可能会超出涉及的数值类型可能值的范围。应当参阅 C# Language Reference 一节中有关特定运算符的详细信息,但一般情况下:
- 整数算术溢出或者引发 OverflowException 或者放弃结果的最高有效位(请参见下文)。整数被零除总是引发 DivideByZeroException。
- 浮点算术溢出或被零除从不引发异常,因为浮点类型基于 IEEE 754,因此可以表示无穷和 NaN(不是数字)。
- Decimal 算术溢出总是引发 OverflowException。Decimal 被零除总是引发 DivideByZeroException。
当发生整数溢出时,产生的结果取决于执行上下文,该上下文可为 checked 或 unchecked。在选中的上下文中引发 OverflowException。在未选中的上下文中,放弃结果的最高有效位并继续执行。因此,C# 使您有机会选择处理或忽略溢出。
除算术运算符以外,整型之间的转换也可导致溢出(例如,将 long 转换为 int)并受选中或未选中执行的限制。还要注意,按位运算符和移位运算符从不导致溢出。
博客介绍了 C# 运算符,C# 提供大量运算符,很多可被用户重载。还阐述了算术溢出情况,如整数、浮点、Decimal 算术溢出或被零除的不同表现,整数溢出结果取决于执行上下文,整型转换也可能导致溢出,按位和移位运算符不会。
1277

被折叠的 条评论
为什么被折叠?



