文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>第六章 运算符和类型强制装换

第六章 运算符和类型强制装换

时间:2010-12-30  来源:小齐宝

   a) 用于不安全代码的运算符

       类型信息运算符: sizeof(仅用于1.0,1.1)

       间接寻址运算符: * -> &

    b) 平时用的不多的运算符

        checked: 要执行溢出检查,如果有溢出,抛出异常(用checked编译器选项进行编译,可以检查程序中所有未标记代码中的溢出)

        unchecked: 不执行溢出检查,这是默认设置,除非代码行标记为checked,才需要显示使用unchecked

        is:检查对象是否与特点的类型兼容(是该类型或者派生于该类型)返回bool型

        as:执行引用类型的显示类型转换,如果与制定的类型兼容,装换成功。不成功,返回null。

        sizeof: 确定堆栈中值类型需要的长度

        ex :          unsafe

                   {

                      Console.WriteLine(sizeof(int)) 

                    }

        注意 sizeof 只能在不安全代码中使用

      c)可空类型

           int?  a =null;

           可空类型做一元或二元运算,其中一个操作数是null,结果就是null

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

            做比较运算时,有一个是null,返回false

       d) 空接合运算符 ??

           第一个操作数必须是一个可空类型或引用类型,第二个操作数必须与第一个类型相同,或者可以隐含地装换成第一个操作数。

            计算规则,如果 第一个不是null,则表达式等于第一个操作数的值,否则等于第二个操作数的值

2.隐式类型转换

     转换表(好大)

      

         可空类型不能隐式转换为非可空类型,必须进行显示转换。

3.对象的相等比较

   a)引用类型的相等比较

         1)ReferenceEquals()方法

            静态方法,测试两个引用是否指向类的同一个实例。

         2) 虚拟的Equals()方法

            可以重写,测试两个引用是否指向类的同一个实例。

         3)静态的Equals()方法

            与虚拟实例版本作用相同,区别是带有两个参数。如果两个都是null,返回true;如果只有一个是null 返回false;如果指向某个对象,条用虚拟的Equals()方法,因此重写Equals()实例版本,也相当于重写了Equals()的静态版本。

          4) 比较运算符 ==

     b)值类型的相等比较

          ReferenceEquals()用于比较引用,总是返回false。会对两个比较的值装箱后比较其引用

          Equal()用于比较值。

4 运算符重载

   a) ex: public static Vector operarator + (Vector lhs, Vector rhs)

        必须声明为 public 和 static

   b) 六个比较运算符

      == 和 !=

      > 和 <

     >= 和 <=

    他们是成对出现的,所以重载了==必须重载!=。

    必须返回bool类型

5 用户定义的类型转换

   a)ex: public static implicit operator float(Currency value)

    如果类型转换总是安全的,可以定义为隐式

   如果数值会出错,如丢失数据或抛出异常,应定义为显示的。

  b) 类之间的数据类型转换

    

 如上图所示,唯一合法的类型装换是C和D。

 类型转换必须在源或目标数据类型的内部定义。

ps:未完

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载