黑马程序员技术交流社区

标题: C#中Equals与 == 的有什么区别?比如有没性能差异 [打印本页]

作者: DotNet菜鸟    时间: 2011-11-5 16:49
标题: C#中Equals与 == 的有什么区别?比如有没性能差异
C#中Equals与 == 的有什么区别?比如有没性能差异
作者: 夏雪锐    时间: 2011-11-5 19:27
一个是比较内容,一个是比较引用,至于性能没可比性,功能都不一样。
作者: 小石    时间: 2011-11-5 20:54
"=="比较的是变量值的内容是否相等,equals则是判断是否是对同一个对象的引用
作者: 王金凤    时间: 2011-11-5 21:29
==操作比较的是两个变量的值是否相等。
equals()方法比较的是两个对象的内容是否一致.equals也就是比较引用类型是否是对同一个对象的引用。

作者: yy312232557    时间: 2011-11-7 23:23
"=="比较的是变量值的内容是否相等,

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

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

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

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

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

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

作者: 周大俊    时间: 2011-11-9 13:40
如果是基本类型比较,那么只能用==来比较,不能用equals .
对于基本类型的包装类型,比如Boolean、Character、Byte、Shot、Integer、Long、Float、Double等的引用变量,==是比较地址的,而equals是比较内容的。
作者: 毕山山    时间: 2011-11-16 17:28
"==" : 操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。
"equals" : 操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。
而字符串是一个特殊的引用型类型,在C#语言中,重载了string 对象的很多方法方法(包括equals()方法),使string对象用起来就像是值类型一样。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2