### 其它运算符

#### 1．递增、递减运算符

增量运算符 (++) 将操作数加 1。增量运算符可以出现在操作数之前或之后：

第一种形式是前缀增量操作，如：++a。该操作的结果是操作数加 1 之后的值。

第二种形式是后缀增量操作，如 a++。该运算的结果是操作数增加之前的值。

减量运算符 (--) 将操作数减 1。与增量运算符相似，减量运算符可以出现在操作数之前或之后：

第一种形式是前缀减量操作，如：--a。该运算的结果是操作数减小“之后”的值。

第二种形式是后缀减量操作，如：a--。该运算的结果是操作数减小“之前”的值。

递增、递减的具体运算方法如表 1 所示（其中变量 a 为 int 类型）。

表 1 递增、递减运算符运行结果

运算前 a 值 | 表达式 | 运算后 a 值
1 | ++a | 2
1 | a++ | 1
1 | --a | 0
1 | a-- | 1

#### 2．条件运算符

条件运算符 (?:) 根据布尔型表达式的值返回两个值中的一个。条件运算符的格式如下：

condition?expression1:expression2;

如果条件为 true，则计算 expression1 表达式并以它的计算结果为准；如果为 false，则计算 expression2 表达式并以它的计算结果为准。例如：

int a=1;

int b=2;

a != b ? a++ :a--;

上面的代码首先定义了两个变量，并给他们赋值并且进行三元运算，如果 a!=b 该示例返回执行结果为 2，否则返回 1。

#### 3．new 运算符

new 运算符用于创建对象和调用构造函数，例如：

ClassTest test=new ClassTest();

new 运算符还用于调用值类型的默认构造函数。例如：

int i=new int();

该语句的等同于：

int i=0;

注意：new 操作符暗示创建一个类的实例，但不一定必须动态分配内存。

#### 4．as 运算符

as 运算符用于在兼容的引用类型之间执行转换。例如：

string s = someObject as string;

说明：as 运算符类似于强制转换，所不同的是，当转换失败时，运算符将产生空值，而不是引发异常。