【C#语言规范版本5.0学习】1.3表达式
表达式由操作数 (operand) 和运算符 (operator) 构成。
表达式的运算符,指示对操作数适用什么样的运算。 运算符的示例包括+、-、*、/ 和 new。
操作数的示例包括文本、字段、局部变量和表达式。
当表达式包含多个运算符时,运算符的优先级 (precedence) 控制各运算符的计算顺序。
例如,表达式 x + y * z 按 x + (y * z) 计算,因为 * 运算符的优先级高于 + 运算符。
大多数运算符都可以重载 (overload)。运算符重载允许指定用户定义的运算符实现来执行运算,这些运算的操作数中至少有一个,甚至所有操作数都属于用户定义的类类型或结构类型。
下表总结了 C# 运算符,并按优先级从高到低的顺序列出各运算符类别。同一类别中的运算符优先级相同。
类 别 | 表 达 式 | 说 明 |
基本 | x.m | 成员访问 |
x(...) | 方法和委托调用 | |
x[...] | 数组和索引器访问 | |
x++ | 后增量 | |
x-- | 后减量 | |
new T(...) | 对象和委托创建 | |
new T(...){...} | 使用初始值设定项创建对象 | |
new {...} | 匿名对象初始值设定项 | |
new T[...] | 数组创建 | |
typeof(T) | 获取 T 的 System.Type 对象 | |
checked(x) | 在 checked 上下文中计算表达式 | |
unchecked(x) | 在 unchecked 上下文中计算表达式 | |
default(T) | 获取类型 T 的默认值 | |
delegate {...} | 匿名函数(匿名方法) | |
一元 | +x | 恒等 |
-x | 求相反数 | |
!x | 逻辑求反 | |
~x | 按位求反 | |
++x | 前增量 | |
--x | 前减量 | |
(T)x | 将 x 显式转换为类型 T | |
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 | 大于或等于 | |
x is T | 如果 x 为 T,则返回 true,否则返回 false | |
x as T | 返回转换为类型 T 的 x,如果 x 不是 T 则返回 null | |
相等 | x == y | 等于 |
x != y | 不等于 | |
逻辑“与” | x & y | 整型按位 AND,布尔逻辑 AND |
逻辑 XOR | x ^ y | 整型按位 XOR,布尔逻辑 XOR |
逻辑 OR | x | y | 整型按位 OR,布尔逻辑 OR |
条件 AND | x && y | 仅当 x 为 true 时,才对 y 求值 |
条件 OR | x || y | 仅当 x 为 false 时,才对 y 求值 |
null 合并 | X ?? y | 如果 x 为 null,则计算结果为 y,否则计算结果 为 x |
条件 | x ? y : z | 如果 x 为 true,则对 y 求值;如果 x 为 false,则对 z 求值 |
赋值或匿名函数 | x = y | 赋值 |
x op= y | 复合赋值;支持的运算符有: *= /= %= += -= <<= >>= &= ^= |= | |
(T x) => y | 匿名函数(lambda 表达式) |
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 对象命名为何需要避免'-er'和'-or'后缀
· SQL Server如何跟踪自动统计信息更新?
· AI与.NET技术实操系列:使用Catalyst进行自然语言处理
· 分享一个我遇到过的“量子力学”级别的BUG。
· Linux系列:如何调试 malloc 的底层源码
· 对象命名为何需要避免'-er'和'-or'后缀
· JDK 24 发布,新特性解读!
· C# 中比较实用的关键字,基础高频面试题!
· .NET 10 Preview 2 增强了 Blazor 和.NET MAUI
· SQL Server如何跟踪自动统计信息更新?