黑马程序员————运算符与类型转换

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------

运算符:

类    别

运 算 符

算术运算符

+ – * / %

逻辑运算符

& | ^ ~ && || !

字符串连接运算符

+

增量和减量运算符

++ ––

移位运算符

<< >>

比较运算符

== != < > <= >=

赋值运算符

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

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

.

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

[]

数据类型转换运算符

()

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

?:

委托连接和删除运算符(见第6章)

+ –

对象创建运算符

new

类型信息运算符

Size of (只用于不安全的代码) is type of as

溢出异常控制运算符

checked unchecked

间接寻址运算符

*  –>  & (只用于不安全代码) []

命名空间别名限定符

::

空接合运算符

??

赋值(=)和比较(==)运算使用不同的运算符。例如,下述语句表示“x等于3”:

x = 3;

如果要比较x和另一个值,就需要使用两个等号(==):

if (x == 3)

运算符的简化操作:

运算符的简化操作

等  价  于

x++, ++x

x = x + 1

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

x ^= y

x = x ^ y

++增量和--减量运算符:把运算符放在表达式的前面称为前置,把运算符放在表达式的后面称为后置。它们的执行方式有所不同。增量或减量运算符可以作用于整个表达式,也可以作用于表达式的内部。当x++和++x单独占一行时,它们的作用是相同的,对应于语句x = x + 1。但当它们用于表达式内部时,把运算符放在前面(++x)会在计算表达式之前递增x,换言之,递增了x后,在表达式中使用新值进行计算。而把运算符放在后面(x++)会在计算表达式之后递增x(使用原来的值计算表达式)。前置运算符––x和后置运算符x––与此类似,但它们是递减,而不是递增。

三元运算符:

三元运算符(?:)是if...else结构的简化形式。其名称的出处是它带有三个操作数。它可以计算一个条件,如果条件为真,就返回一个值;如果条件为假,则返回另一个值。其语法如下:

condition ? true_value : false_value

其中condition是要计算的Boolean型表达式,true_value是condition为true时返回的值,false_value是condition为false时返回的值。

is运算符:

is运算符可以检查对象是否与特定的类型兼容。

:“兼容”表示对象是该类型,或者派生于该类型。

例如,要检查变量是否与object类型兼容:int和从object继承而来的其他C#数据类型一样,表达式i is object将得到true,并显示信息。

as运算符:

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

例如:

object o1 = "Some String";

object o2 = 5;

string s1 = o1 as string;      //s1 = "Some String"

string s2 = o2 as string;     //s1 = null

如果object引用不指向string实例,把object引用转换为string就会返回null。

注:as运算符允许在一步中进行安全的类型转换,不需要先使用is运算符测试类型,再执行转换。

运算符的优先级:

表顶部的运算符有最高的优先级(即在包含多个运算符的表达式中,最先计算该运算符):

运  算  符

初级运算符

() . [] x++ x–– new typeof sizeof checked unchecked

一元运算符

+ – ! ~ ++x ––x和数据类型转换

乘/除运算符

* / %

加/减运算符

+ –

移位运算符

<< >>

关系运算符

< > <= >= is as

比较运算符

= = !=

按位AND运算符

&

按位XOR运算符

|

按位OR运算符

^

布尔 AND运算符

&&

布尔OR运算符

||

三元运算符

?:

赋值运算符

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

注:

在复杂的表达式中,应避免利用运算符优先级来生成正确的结果。使用括号指定运算符的执行顺序,可以使代码更整洁,避免出现潜在的冲突。

类型装换:

(1) 隐式转换:一般是低类型向高类型转化,能够保证值不发生变化。

    隐式数值转换: 
    从 sbyte 到 short、int、long、float、double 或 decimal。 
    从 byte 到 short、ushort、int、uint、long、ulong、float double 或 decimal。
    从 short 到 int、long、float、double 或 decimal。
    从 ushort 到 int、uint、long、ulong、float、double 或 decimal。 
    从 int 到 long、float、double 或 decimal。 
    从 uint 到 long、ulong、float、double 或 decimal。
    从 long 到 float、double 或 decimal。 
    从 ulong 到 float、double 或 decimal。
    从 char 到 ushort、int、uint、long、ulong、float、double 或 decimal。 
    从 float 到 double。 
注:(1)不存在向 char 类型的隐式转换,因此其它整型的值不会自动转换为 char 类型。
    (2)浮点型不能隐式地转化为decimal型
    (3)隐式枚举转换允许将十进制整数 0 转换为任何枚举类型。

    (4)隐式引用转换是指一类引用类型之间的转换,这种转换总是可以成功,因此不需要在运行时进行任何检查。例如:派生类向基类转换
    (5)
装箱转换允许将值类型隐式转换为引用类型。

显示转换:也称强制类型转换。不能保证数据的正确性。
       (type)(表达式)

--------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ---------------------- 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值