C#中四个判等函数的认识
donet提供了四个判等函数,分别是referenceEqual,静态Equal,具体类型Equal,和==。
首先来说,object.referenceEqual和静态Equal
public static bool ReferenceEqual(obj left,obj right)
值得注意的是object.referenceEqual对俩个值类型进行比较时,首先会进行装箱的操作但是比较的却是内存地址,
int n=;
Console.WriteLine(ReferenceEquals(n, n));
这段代码的输出结果为false,为什么呢,因为ReferenceEqual比较的是引用类型,所以对于值类型会进行隐式转换装箱操作,而值类型进行两次装箱操作分别获得的内存的指向地址
是不一样的,而referenceEqual比较的就是内存地址。所以结果永远为false。
int i = ;
Console.WriteLine(Equals(i, i));
Console.WriteLine(Equals(i, ));
以上代码的运行结果都为True,
C#中四个判等函数的认识的更多相关文章
- 《Effective C#》:区别和认识四个判等函数
.Net有四个判等函数?不少人看到这个标题,会对此感到怀疑.事实上确是如此,.Net提供了ReferenceEquals.静态Equals,具体类型的Equals以及==操作符这四个判等函数.但是这四 ...
- 【转】区别和认识.Net四个判等函数
原文地址:不详 .Net有四个判等函数?不少人看到这个标题,会对此感到怀疑.事实上确是如此,.Net提供了ReferenceEquals.静态Equals,具体类型的Equals以及==操作符这四个判 ...
- 区别和认识.net四个判等方法
概要 本方介绍.net如何判断两个对象是否相等 .Net有四个判等函数 1)Object.ReferenceEquals 2)Object.Equals 3)对象实例的Equals 4)==操作符 这 ...
- JAVA之旅(十四)——静态同步函数的锁是class对象,多线程的单例设计模式,死锁,线程中的通讯以及通讯所带来的安全隐患,等待唤醒机制
JAVA之旅(十四)--静态同步函数的锁是class对象,多线程的单例设计模式,死锁,线程中的通讯以及通讯所带来的安全隐患,等待唤醒机制 JAVA之旅,一路有你,加油! 一.静态同步函数的锁是clas ...
- js进阶js中支持正则的四个常用字符串函数(search march replace split)
js进阶js中支持正则的四个常用字符串函数(search march replace split) 一.总结 代码中详细四个函数的用法 search march replace split 二.js进 ...
- 在SQL SERVER中实现RSA加解密函数(第一版)
/*************************************************** 作者:herowang(让你望见影子的墙) 日期:2010.1.1 注: 转载请保留此信息 ...
- ORACLE中的支持正则表达式的函数
ORACLE中的支持正则表达式的函数主要有下面四个:1,REGEXP_LIKE :与LIKE的功能相似2,REGEXP_INSTR :与INSTR的功能相似3,REGEXP_SUBSTR :与SUBS ...
- PHP中常用的字符串格式化函数总结
注意:在PHP中提供的字符串函数处理的字符串,大部分都不是在原字符串上修改,而是返回一个格式化后的新字符串. 一.取出空格和字符串填补函数 空格也是一个有效的字符,在字符串中也会占据一个位置.用户在表 ...
- [转]C++中四种类型转换符的总结
C++中四种类型转换符的总结 一.reinterpret_cast用法:reinpreter_cast<type-id> (expression) reinterpret_cast操 ...
随机推荐
- 【Hibernate步步为营】--(一对多映射)之双向关联
上篇文章讨论了单向关联的一对多映射,在一的一端维护双向的关系这样的做法尽管能实现可是存在非常多缺陷,首先生成非常多多余的SQL语句,由于多的一端不维护关系,仅仅有一的一端维护,在进行操作时一的一端会发 ...
- Team Foundation Server 2015使用教程--团队项目删除
- SQL Server 2008 R2 性能计数器详细列表(三)
原文:SQL Server 2008 R2 性能计数器详细列表(三) SQL Server,Deprecated Features 对象: 监视指定为不推荐使用的功能: SQL Server Depr ...
- NYoj-Binary String Matching-KMP算法
Binary String Matching 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描写叙述 Given two strings A and B, whose alp ...
- Android采用canvas绘制各种图形
canvas通俗的说就是一个帆布,我们可以用刷子paint,就此随机抽签显卡. 原理: 能够canvas视Surface替代或接口.图形绘制Surface向上.Canvas封装了全部的绘制调用. 通过 ...
- JAVA该队列中的数组,圆阵队列,链队列
/** * 文件名:QueueText.java * 时间:2014年10月22下午9:05:13 * 笔者:维亚康姆维修 */ package chapter3; /** * 类名:ArrayQue ...
- Oracle压缩总结2—
估计表压缩效应
使用压缩前,我们可以估算压缩能有多大效果. 11gr2我已经能够使用dbms_comp_advisor,具体代码见附件.只需要运行两个文件dbmscomp.sql和prvtcomp.plb.然后使用D ...
- 对“demo!demo.Index+HookProc::Invoke”垃圾收集的类型已委托回调。这可能会导致应用程序崩溃、损坏和数据丢失。当传递委托给非托管代码,托管应用程序必须让这些委托保持活着
对"demo!demo.Index+HookProc::Invoke"垃圾收集的类型已委托回调.这可能会导致应用程序崩溃.损坏和数据丢失.当传递委托给非托管代码,托管应用程序必须承 ...
- git checkout 命令详解(转)
在日常的git操作中,git checkout——检出,是我们的常用命令.最为常用的两种情形是创建分支和切换分支. 在下面的命令中,使用了一些简写,在这里说明一下: git st # git stat ...
- mybatis型材xxxx.xml缺少后果返回类型
下面是一个mybatis型材xxxx.xml失踪resultMap错误: 严重: Servlet.service() for servlet [SpringMVC] in context with p ...