C# "=="、Equals()、ReferenceEquals()区别
对于值类型:
int age1 = ;
byte age2 = ;

1、== 比较的是值内容
2、age2.Equals(age1) = false; Equals比较前需要转换成同类型,age1(int型)需显示转换成byte型
3、age1.ReferenceEquals(age2) = false; ReferenceEquals比较(判断两个对象的引用是否相等,对于值类型,因为每次判断前都必须进行装箱操作,
也就是每次都生成了一个临时的object,因而永远返回false。)
String类型:字符串是特殊的引用类型(CLR可以通过一个string对象共享多个完全一致的string内容)
string name1 = "Jack";
string name2 = "Jack"; object o1 = name1;
object o2 = name2;

其他引用类型
string name1 = new string(new char[] { 'J', 'a', 'c', 'k' });
string name2 = new string(new char[] { 'J', 'a', 'c', 'k' });
object o1 = name1;
object o2 = name2;

对于引用类型:
1、== 比较的是类型对象指针
2、Equals()比较的是托管堆上存储的内容
3、ReferenceEquals()比较的也是对象本身
C# "=="、Equals()、ReferenceEquals()区别的更多相关文章
- C#扫盲之:==/Equals /ReferenceEquals 异同的总结,相等性你真的知道吗?
1.前言 == Equals ReferenceEquals 三个相等性测试,是.NET提供给程序员使用的三个方法,他们之间有什么联系和区别,你真的仔细研究过?虽然之前也多多少少知道一点,但是有时候又 ...
- C#中 Reference Equals, == , Equals的区别
原文地址:http://blog.csdn.net/wuchen_net/archive/2010/03/23/5409327.aspx ReferenceEquals, == , Equals Eq ...
- 【转载】C#扫盲之:==/Equals /ReferenceEquals 异同的总结,相等性你真的知道吗?
1.前言 == Equals ReferenceEquals 三个相等性测试,是.NET提供给程序员使用的三个方法,他们之间有什么联系和区别,你真的仔细研究过?虽然之前也多多少少知道一点,但是有时候又 ...
- Java学习笔记——双等号和equals的区别
一.==和equals的区别 1. ==可以用来比较基本类型和引用类型,判断内容和内存地址 2. equals只能用来比较引用类型,它只判断内容.该函数存在于老祖宗类 java.lang.Object ...
- java中的==和equals的区别
关于JAVA中的==和equals函数的区别 今天在研读Thinking in java 时注意到==和equals的区别,于是就通过查看JDK_API才读懂了他们的区别,于是将心得分享一下,望批评指 ...
- android错误之==与equals的区别
在做一个电话号码匹配的时候, 开始我使用的是这种情况 if (num == inCall.getNum()) { //操作... } 但是无论如何结果都是false,就算两个号码打印出来一模一样还是f ...
- Java基础系列之你真的懂==与equals的区别吗?
对于Java初学者而言,可能会对这两个比较方法比较模糊,有的人可能会觉得两个的方法使用起来结果是一样的等.如果你有这样的想法,我建议你来看看这边博客,让你充分了解这两个比较的异同,以及他们底层是如何比 ...
- Java 中 == 和 equals 的区别
有一段时间,== 和 equals 的区别一直困扰着我.因为涉及到Java的内存机制,然而Java的内存机制又是比较抽象的东西,所以对那时候的我来说,实在是很难理解. == 和 equals 最大的区 ...
- java 的==和equals的区别(二)
java 的==和equals的区别 java 的==和equals的区别 ==通常表明引用的是同一个东西(引用的地址相同),equals通常表明两个对象的内容相同(值相同) ------------ ...
- equals与==区别
equals与==区别 java中的数据类型,可分为两类: 1.基本数据类型,也称原始数据类型.byte,short,char,int,long,float,double,boolean 他们之间 ...
随机推荐
- 笔记26-徐 SQLSERVER内存分配和常见内存问题
1 --64位SQLSERVER 应用在IA64操作系统 7TB 2TB ...
- 图像上传OSS的BUG
今天遇到了一个流上传BUG. 图像经过压缩后传到阿里OSS上后无法显示,下载后发现图像大小为0KB. 调试发现上传的时候发现处理后的流大小正确. 最后发现是流经过图像处理后没有复位. 使用res.Se ...
- Android菜鸟成长记14 -- AsnyTask
本篇随笔将讲解一下Android的多线程的知识,以及如何通过AsyncTask机制来实现线程之间的通信. 一.Android当中的多线程 在Android当中,当一个应用程序的组件启动的时候,并且没有 ...
- centos配置epel
1.下载epel wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm 2.安装epel rpm -iv ...
- windows电脑优化
电脑磁盘已用99% 100%解决办法_百度经验 禁用superfetch服务 链接:http://jingyan.baidu.com/article/046a7b3edeea38f9c37fa911. ...
- find命令:忽略一个目录或者多个目录
example: find ./ ! -path "./output/*" ! -path "./output1/*" -type f | xargs grep ...
- loadrunner-VUserGen录制脚本及回放时注意的问题
乱码问题 1.1录制过程中的乱码(因为本机系统的编码格式跟被测系统的编码格式不一致导致): 1.2运行时的乱码(录制后的脚本编码格式跟被测系统的编码格式不一致导致): 解决:1.Tools-Recor ...
- 从红米手机经常发生UIM没有服务的一些猜想
缘起:买了测试用的红米手机,安装电信卡,经常生UIM没有服务,大约两天1次. 我的解决办法:飞行模式切换一下就恢复正常. 之前这张卡用三星的信号是满格,红米断开挺经常的 上网搜索: 同样的现象,还好官 ...
- 安装YouCompleteMe
1. from software center 1 $ apt-get install vim vim-youcompleteme vim-addon-manager 2 $ vam install ...
- Oracle分页存储过程
1.在oracle的sqlplus或其他工具中运行一下pl/sql块建立存储过程 --创建包create or replace package testpackage astype test_curs ...