表达式是在操作数和运算符的基础上构造而成。表达式的运算符指明了向操作数应用的运算。运算符的示例包括+、-、*、/和new。操作数的示例包括文本、字段、局部变量和表达式。
如果表达式包含多个运算符,那么是运算符的优先级决定了各个运算符的计算顺序。例如,表达式 x+y*z相当于计算x+(y*z),因为*运算符的优先级高于+运算符。
如果操作数两边的两个运算符的优先级相同,那么运算符的结合性决定了运算的执行顺序:
- 除了赋值运算符之外,所有的二元运算符均为左结合运算符,即从左向右执行运算。例如,x+y+z将计算为(x+y)+z
- 赋值运算符和条件运算符(?:)为右结合运算符,即从右向左执行运算。例如,x=y=z将计算为x=(y=z)。
可以使用括号控制优先级和结合性,例如x+y*z先计算y*z,并将结果相加,而(x+y)*则是先计算x加y,然后将结果与z相乘
大部分运算符可重载。借助运算符重载,可以为一个或两个操作数为用户定义类或结构类型的运算指定用户自定义运算符实现代码。
C#提供多个运算符用于执行算术、逻辑、按位和移位运算以及相等和排序比较。(这些内容后续会陆续更新)