C#运算符和强制类型转换

1,运算符

   算数运算符  +  -  *  /  %

   逻辑运算符  &  | ^ ~ && || !

   字符串连接运算符  +

   增量和减量运算符 <<  >>

   比较运算符  ==  != <> <=  >=

   赋值运算符 = += -= *= /= %= &= |=  ^= <<=  >>=

   成员访问运算符(用于对象和结构) .

   索引运算符(用于数组和索引器) []

   类型转换运算符()

   条件运算符(三元运算符) ?:

   委托链接和删除运算符+ -

   对象创建运算符 new

   类型信息运算符 sizeof is typeof  as

   溢出异常运算符 checked unchecked

   间接寻址运算符 []

   空间名称别名限定符  ::

   空合并运算符   ??

2,运算符的简化操作

    运算符的简化操作      等价于

   x++,++x                 x=x++;

   x--,--x                      x=x-1;

   x+=y;                     x=x+y;

   x-=y;                      x=x-y;

   x*=y                      x=x*y;

   x/=y;                     x=x/y;

   x%=y;                   x=x%y;

   x<<=y;                 x=x<<y;

   x>>=y;                 x=x>>y;

  x&=y;                    x=x&y;

  x|=y;                    x=x|y;

3,条件运算符

  条件运算符(?:)也称三元运算符,时if....else的简化形式。其名称的出处是它带有三个操作数。

4,checked和unchecked 运算符

byte=255;

b++;

Console.WriteLine(b.TosString());

byte数据类型只能包含0~255的数,所以递增b的值会导致溢出。CLR如何处理这个溢出取决于许多因素,所以只要有未意料的溢出风险,就要用某种方式确保的到我们想要的结果。

为此C#提供了checked和unchecked运算符。如果把一个代码块标记为checked,CLR就会执行溢出检查,如果发生溢出,就会抛出OverflowException。

byte b=255;

checked

{

 b++;

}

Console.WriteLine(b.ToString());

5,is运算符

is运算符可以检查对象是否与特定的类型兼容。"兼容"表示对象或者是该类型,或者派生自该类型。例如,要检查变量是否与object类型兼容,可以使用下面的代码:

int i=10;

if(i is object)

{

 Console.WriteLine("i is an object");

}

int 和所有C#数据类型一样,也从object继承而来;表达式i is object 将为true,并显示相应的消息。

6,as 运算符

as运算符用于引用类型显式类型转换。如果要转换的类型与指定类型兼容,转换就会成功进行;如果类型不兼容,as运算符就会返回null值。

7,sizeof运算符

使用sizeof运算符可以确定栈中值类型需要的长度(单位是字节)

Console.WriteLine(sizeof(int));

8,typeof运算符

typeof运算符返回一个特定类型的System.Type对象

9,可空类型和运算符

int? a=null;

int? b=a+4;//b=null

int? c=a*5;//c=null

10,合并运算符

如果第一个操作数不是null,则整个表达式就等于第一个操作数的值

如果第一个操作数是null,整个表达式就等译第二个操作数的值

int? a=null;

int b=10;

b=a??b;// b的是为10

a=3;

b=a??b;//b的值是3

11,运算符的优先级

初级运算符>一元运算符>乘除运算符>加减运算符>移位运算符>关系运算符>比较运算符>按位AND运算符>按位XOR运算符>按位OR运算符>布尔AND运算符符>布尔OR运算符>条件运算符>赋值运算符

运算符分类表省略。。。。。。

12,类型转换

隐式转换

byte a=10;

byte b=23;

long total;

total=a+b;

Console.WriteLine(total);

隐式类型转换只能从较小的整数类型转换为较大的整数类型。

显示转换

long val=30000000000;

int i=cheked((int)val);

13,装箱和拆箱

文章引用:http://www.qishunwang.net/knowledge_show_147.aspx

posted @ 2016-08-09 12:35  编程我的一切  阅读(1195)  评论(0编辑  收藏  举报