增量运算符 (++) 将操作数加 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 |
条件运算符 (?:) 根据布尔型表达式的值返回两个值中的一个。条件运算符的格式如下:
condition?expression1:expression2;
如果条件为true,则计算expression1表达式并以它的计算结果为准;如果为false,则计算expression2表达式并以它的计算结果为准。例如:
int a=1;
int b=2;
a != b ? a++ :a--;
上面的代码首先定义了两个变量,并给他们赋值并且进行三元运算,如果a!=b该示例返回执行结果为2,否则返回1。
new运算符用于创建对象和调用构造函数,例如:
ClassTest test=new ClassTest();
new 运算符还用于调用值类型的默认构造函数。例如:
int i=new int();
该语句的等同于:
int i=0;
注意:new操作符暗示创建一个类的实例,但不一定必须动态分配内存。
as运算符用于在兼容的引用类型之间执行转换。例如:
string s = someObject as string;
说明:as运算符类似于强制转换,所不同的是,当转换失败时,运算符将产生空值,而不是引发异常。