CSDN博客

img zhf7878

一周学会C#(值的类型二)

发表于2004/1/12 17:10:00  482人阅读

一周学会C#(值的类型二)

C#才鸟(QQ:249178521

4.连接

·        规则1 

w       除了赋值操作符外的其他二元操作符都是左连接的。

x+y+z   应理解为   x+y+z

·        规则2

w       赋值操作符和?: 操作符是右连接的。

x=y=z      应理解为   x=(y=z)

x+=y+=z   应理解为    x+=(y+=z)

a?b:c?d:e  应理解为   a?b:(c?d:e)

5.计算时的顺序

·        操作数是严格地从左到右被计算的。

int m = 2;

int answer = ++m * ++m + ++m * ++m;

计算的顺序:

3 * ++m + ++m * ++m

3 * 4 + ++m * ++m

12 + ++m * ++m

12 + 5 * ++m

12 + 5 * 6

12 + 30

42

6.整数溢出

·                    溢出错误

w       un/checked ( 表达式 )

w       un/checked{语句

int m = ...

Method(checked(m * 2));

m = checked(m * 2);

checked

{

    Method(m * 2);

    m *= 2;

}

 

以上的每一句语句都进行溢出错误检查

 

Method(m * 2);

m *= 2;

以上的每一句语句在用csc /checked+ *.cs编译时,进行溢出错误检查

以上的每一句语句在用csc /checked- *.cs编译时,不进行溢出错误检查

 

Method(unchecked(m * 2));

m = unchecked(m * 2);

unchecked

{

   Method(m * 2);

   m *= 2;

}

以上的每一句语句都不进行溢出错误检查

checked(表达式)检查一个表达式的结果是否溢出。它可以用于任何一个表达式,但只只能对整数操作符起作用,因为只有这些操作符才产生溢出。这些操作符是:++, --, -(负号),+ -(减号), * / %以及整型之间的显式类型转换符。checked(表达式)的结果也是一个表达式,它可以被用来作为另一个表达式的一部分:

                     int outcome = checked( ... );

checked{语句}检查一系列的语句结果是否溢出。它不是一个表达式,没有结果。例如,下面有语句会产生错误:

                     int noOutcome = checked { ... };

(注意:checked(表达式)的括号是园括号,而checked{语句}的括号是花括号)。

unchecked是不检查是否溢出。

0 0

相关博文

我的热门文章

img
取 消
img