黑马程序员技术交流社区
标题:
C#中equals和 ==的区别?
[打印本页]
作者:
翟盼盼
时间:
2013-3-8 17:15
标题:
C#中equals和 ==的区别?
C#中equals和 ==的区别有哪些?
作者:
廖新
时间:
2013-3-8 17:24
值类型是存储在内存中的堆栈,而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中。
"==" : 操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。
"equals" : 操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。
作者:
张卫刚
时间:
2013-3-8 18:08
"==" 操作比较变量的值是否相等, 引用型变量表示的是两个变量在堆区中的16进制地址值是否相等。
"equals" 是比较对象在堆区中地址值(hash码)是否相同。
作者:
吕振
时间:
2013-3-8 18:16
"==" : 操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。
"equals" : 操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。
作者:
快乐之恋
时间:
2013-3-8 18:17
C#中的==以及equals和Java中的正好相反
== 是判断值是否相同
equals 是判断地址是否相同
而string类型对象的==和equals 都是比较值,这是比较特殊的
作者:
董华阳
时间:
2013-3-8 19:31
操作符“==”在值类型情况下表示是否值相等.equals 判断是否是同一个对象的引用.
string的==和equals都是比较值。
作者:
余攀
时间:
2013-3-8 21:21
楼上说得挺全的,俺补充下下:Equals()方法还可以在比较时直接忽略大小写,方便了很多,
//定义两课程
string kk1 = "JAVA";
string kk2 = "java";
//不区分大小写的字符串比较
if (kk1.Equals(kk2, StringComparison.OrdinalIgnoreCase))
{
Console.WriteLine("喜欢的课程一样");
}
else
{
Console.WriteLine("喜欢的课程不一样");
}
复制代码
作者:
程天贤
时间:
2013-3-11 13:23
equals是比较地址,,“==”是比较值
作者:
岳珅
时间:
2013-3-11 21:13
这个mark一下!谢谢你们,又多了解了些东东
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2