博客
关于我
运算符和类型强制转换(二)
阅读量: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/

你可能感兴趣的文章
Navicat报错:1045-Access denied for user root@localhost(using passwordYES)
查看>>
Navicat控制mysql用户权限
查看>>
navicat操作mysql中某一张表后, 读表时一直显示正在载入,卡死不动,无法操作
查看>>
Navicat连接mysql 2003 - Can't connect to MySQL server on ' '(10038)
查看>>
Navicat连接mysql数据库中出现的所有问题解决方案(全)
查看>>
Navicat连接Oracle出现Oracle library is not loaded的解决方法
查看>>
Navicat连接Oracle数据库以及Oracle library is not loaded的解决方法
查看>>
Navicat连接sqlserver提示:未发现数据源名并且未指定默认驱动程序
查看>>
navicat连接远程mysql数据库
查看>>
Navicat通过存储过程批量插入mysql数据
查看>>
Navicat(数据库可视化操作软件)安装、配置、测试
查看>>
navigationController
查看>>
NB-IOT使用LWM2M移动onenet基础通信套件对接之APN设置
查看>>
NBear简介与使用图解
查看>>
Vue过滤器_使用过滤器进行数据格式化操作---vue工作笔记0015
查看>>
Ncast盈可视 高清智能录播系统 IPSetup.php信息泄露+RCE漏洞复现(CVE-2024-0305)
查看>>
NCNN中的模型量化解决方案:源码阅读和原理解析
查看>>
NCNN源码学习(1):Mat详解
查看>>
nc命令详解
查看>>
NC综合漏洞利用工具
查看>>