A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

C#中Equals与 == 的有什么区别?比如有没性能差异

评分

参与人数 1技术分 +1 收起 理由
杨恩锋 + 1

查看全部评分

6 个回复

正序浏览
毕山山 黑马帝 2011-11-16 17:28:30
7#
"==" : 操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。
"equals" : 操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。
而字符串是一个特殊的引用型类型,在C#语言中,重载了string 对象的很多方法方法(包括equals()方法),使string对象用起来就像是值类型一样。

评分

参与人数 1技术分 +1 收起 理由
陈涛 + 1

查看全部评分

回复 使用道具 举报
如果是基本类型比较,那么只能用==来比较,不能用equals .
对于基本类型的包装类型,比如Boolean、Character、Byte、Shot、Integer、Long、Float、Double等的引用变量,==是比较地址的,而equals是比较内容的。

评分

参与人数 1技术分 +1 收起 理由
陈涛 + 1

查看全部评分

回复 使用道具 举报
"=="比较的是变量值的内容是否相等,

equals则是判断是否是对同一个对象的引用

正常情况下,如果我们纯粹的只是为了去比较两个string 是否相等,我们可以用 “==”,但是如果这样比较的话,是区分大小写的

比如: string a = “ITcast”;  string b = ”itcast“ ;

那么 你比较的时候 可以  if(a == b){...},这个肯定为false

如果 if(a.Trim().Tolower() == b.Trim().Tolower()){...},这个时候就为true了

实际开发中,比如做登录功能的时候,建议用equals方法,这个更加方便,而且equals的重载方法中有好几个,什么忽略大小写的参数,具体你可以试一下,很简单的

评分

参与人数 1技术分 +1 收起 理由
陈涛 + 1

查看全部评分

回复 使用道具 举报
==操作比较的是两个变量的值是否相等。
equals()方法比较的是两个对象的内容是否一致.equals也就是比较引用类型是否是对同一个对象的引用。

评分

参与人数 1技术分 +1 收起 理由
杨恩锋 + 1

查看全部评分

回复 使用道具 举报
"=="比较的是变量值的内容是否相等,equals则是判断是否是对同一个对象的引用

评分

参与人数 1技术分 +1 收起 理由
杨恩锋 + 1

查看全部评分

回复 使用道具 举报
一个是比较内容,一个是比较引用,至于性能没可比性,功能都不一样。

评分

参与人数 1技术分 +1 收起 理由
杨恩锋 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马