VisualC#编程入门之表达式

2026-02-06
表达式(expression)由操作数(operand)和运算符(operator)构成。表达式的运算符标明在操作数上运用了哪种操作。运算符的例子包括+、-、*、/和new。操作数的例子包括字面值、字段、局部变量和表达式。

  当表达式包括多个运算符时,运算符的优先级(precedence)控制各个运算符执行的顺序。例如,表达式x+y*z将以x+(y*z)的形式计算,原因就是运算符“*”的优先级高于运算符“+”。

  大多数运算符能够被重载(overload)。运算符的重载允许用户自定义运算符实现,用于为用户自定义的类或者结构类型指定操作方式。

  表1.4总结了C#的运算符,运算符的分类排列是按其优先级从高到低的次序。同一分类的运算符具有相同的优先级。

    表1.4 C#的运算符

分 类
表 达 式
描 述

基本
x.m
成员访问

x(…)
方法和委托调用

x[…]
数组和索引器访问

x++
后增量(post-increment)

x--
后减量(post-decrement)

new T(…)
对象和委托创建

new T[…]
数组创建

typeof(T)
获得T类型的System.Type对象

checked(x)
在检查的上下文计算表达式

unchecked(x)
在未检查的上下文计算表达式

一元
+x
表达式的值相同

-x
求相反数

!x
逻辑求反

~x
按位求反

++x
前增量(pre-increment)

--x
前减量(pre-decrement)

(T)x
显式地将x的类型转换为类型T

乘除法
x*y


x/y


x%y
求余

加减
x+y
加,字符串合并,委托组合

x-y
减,委托移除

移位
x< 左移

x>>y
右移

关系和类型检测
x 小于

x>y
大于

x<=y
小于或者等于

x>=y
大于或者等于

x is T
如果x属于T类型,返回true;否则,返回false

x as T
返回转换为类型T的x;如果x不是T,就返回null译注2

相等
x==y
等于

x!=y
不等于

逻辑与
x&y
整型按位与,布尔型逻辑与

逻辑异或
x^y
整型按位异或,布尔型逻辑异或

逻辑或
x|y
整型按位或,布尔型逻辑或

条件与
x&&y
如果x为true,则计算y

条件或
x||y
如果x为false,则计算y

条件
x?y:z
如果x为true,则计算y;如果x为false,则计算z

赋值
x=y
赋值

x op=y
复合赋值;支持的运算符有:

*= /= %= += -= <<= >>= &= ^= |=