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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 徐传任 中级黑马   /  2012-9-16 16:57  /  1870 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

C#中equals和 ==的区别是什么?最好详细点啊.谢谢

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

7 个回复

倒序浏览
"==" : 操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同;"equals" : 操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。概括的来说:equals是用于字符串的,==可用于多种值类型,字符串的相等推荐使用equals。随着练习的增多肯定能理解的。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
我觉得你首先要弄懂的一个问题:什么是值类型,和引用类型。运算符(==)返回值是 bool,它比较的的是对象的值是不是相等,  则equals()是一个方法,如果两个对象是不是引用用一个对象!比如:系统中开辟出一块空间,用于比较的值的指针是不是都指向那块开辟出来的内存。

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

回复 使用道具 举报
郭佳佳 发表于 2012-9-16 17:04
"==" : 操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即 ...

谢谢............
回复 使用道具 举报
张青江 发表于 2012-9-16 17:40
我觉得你首先要弄懂的一个问题:什么是值类型,和引用类型。运算符(==)返回值是 bool,它比较的的是对象 ...

谢谢............
回复 使用道具 举报
equales相当关于==常用对象比较
java 中是用字符串做比较 而.net中是用作 对象比较 比如
string name="不知道";
string name1="还是不知道";
if (name.Equals(name1)==false)
{
}

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

回复 使用道具 举报
举个例子:
StringBuilder s1 = new StringBuilder("abc");
StringBuilder s2 = new StringBuilder("abc");
用s1==s2 返回值为false
用s1.Equals(s2)返回值为true
这是因为s1与s2是两个对象,而“==”比较的是一个对象在内存中的地址,即s1与s2是不是同一个对象。创建s1,s2两个对象,他们在内存中地址的位置是不一样的;
"equals" : 操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。它比较的是“abc”以"abc"是不是一样

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
==操作比较的是两个变量的值是否相等,
equals操作表示的两个变量是否是对同一个对象的引用.

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

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