博客
关于我
运算符和类型强制转换(二)
阅读量:269 次
发布时间:2019-03-01

本文共 800 字,大约阅读时间需要 2 分钟。

1、比较对象的相等性

1) 比较引用类型的相等性

(1) ReferenceEquals()方法

ReferenceEquals()是一个静态方法,测试两个引用是否引用类的同一个实例,特别是两个引用是否包含内存中的相同地址。作为静态方法,它不能重写,所以System.Object的实现保持不变。如果提供的两个引用同一个对象实例,则ReferenceEquals()总是返回true;否则就返回false,但是它认为null等于null;

SomeClass x,y;x=new SomeClass();y=new SomeClass();bool B1=ReferenceEquals(null,null);  //returns truebool B2=ReferenceEquals(null,x);     //returns falsebool B3=ReferenceEquals(x,y);        //returns false because x and y                                     //point to different objects

(2)虚拟的Equals()方法

Equals()静态版本与其虚拟实例版本的作用相同,其区别是静态版本带来两个参数,并对他们进行相等性比较。这个方法可以出来两个对象中有一个是null的情况,若一个对象可能是null,这个方法就可以抛出异常,提供额外的保护。静态重载版本首先要检查传递给它的引用是否为null。如果他们都是null,就返回true(因为null与null相等)。如果只有一个引用是null它就返回false。如果两个引用实际上引用了某个对象,它就调用Equals()的虚拟实例版本。相当于重写Equals()的实例版本时,其效果相当于也重写静态版本。

参考:

C#高级编程

 

 

转载地址:http://zuco.baihongyu.com/

你可能感兴趣的文章
Neo私链
查看>>
NervanaGPU 项目使用教程
查看>>
Nerves 项目教程
查看>>
nessus快速安装使用指南(非常详细)零基础入门到精通,收藏这一篇就够了
查看>>
Nessus漏洞扫描教程之配置Nessus
查看>>
Nest.js 6.0.0 正式版发布,基于 TypeScript 的 Node.js 框架
查看>>
nested exception is org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML.
查看>>
nestesd exception is java .lang.NoSuchMethodError:com.goolge.common.collect
查看>>
nestJS学习
查看>>
net core 环境部署的坑
查看>>
NET Framework安装失败的麻烦
查看>>
Net 应用程序如何在32位操作系统下申请超过2G的内存
查看>>
Net.Framework概述
查看>>
NET3.0+中使软件发出声音[整理篇]<转>
查看>>
net::err_aborted 错误码 404
查看>>
NetApp凭借领先的混合云数据与服务把握数字化转型机遇
查看>>
NetAssist网络调试工具使用指南 (附NetAssist工具包)
查看>>
Netbeans 8.1启动参数配置
查看>>
NetBeans IDE8.0需要JDK1.7及以上版本
查看>>
NetBeans之JSP开发环境的搭建...
查看>>