黑马程序员-Equals()与运算符==区别
来源:互联网 发布:excel数组公式 编辑:程序博客网 时间:2024/05/16 07:35
---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------
在C#语言中有两种不同的相等比较,一种是引用相等,一种是值相等;引用相等就是两个对象的引用地址是否相等,值相等就是两个对象引用的内容是否相等。
对于值类型的例子:
int n1 = 1;
int n2 = 1;
Console.WriteLine(n1 = n2);
Console.WriteLine(n1.Equals(n2));
string s1 = "test";
string s2 = "test";
Console.WriteLine(s1 = s2);
Console.WriteLine(s1.Equals(s2));
Console.ReadKey();
输出结果:
True
True
True
True
对于引用类型的例子:
string o = "tom";
string j = "tom";
Console.WriteLine(o == j);
Console.WriteLine(o.Equals(j));
string c = new string(new char[] {'a','b','c' });
string d = new string(new char[] {'a','b','c' });
object e = c;
object f = d;
Console.WriteLine(e == f);
Console.WriteLine(e.Equals(f));
Console.ReadKey();
输出结果:
True
True
False
True
解析:
因为值类型是存储在内存中的堆栈(栈)中的,而引用类型的变量是在栈中存储引用类型变量的内存地址,而其本身存储在堆中。
==运算符比较的是两个变量的值是否相等,对于引用类型的变量比较的是两个变量在堆中内存存储的地址是否相同,即栈中的内容是否相同
equals操作比较的是两个变量是否是对同一个对象的引用,即堆中的内容是否相同。
---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------
- 黑马程序员-Equals()与运算符==区别
- 黑马程序员入学篇——(2)“==”运算符与equals()方法的区别
- 黑马程序员—C# equals与==的区别
- 黑马程序员--equals与==的区别
- “==”运算符与equals方法的区别
- “==”运算符与equals()方法的区别
- 黑马程序员——02几个例子说明equals与"=="的区别
- 黑马程序员_java中equals和==的区别
- 黑马程序员---- java中 equals 和 ==的区别
- 黑马程序员----------equals和==的区别以及用法
- 黑马程序员-equals和==的用法以及区别
- 黑马程序员-==和equals的区别
- 黑马程序员----"=="和equals方法区别
- 黑马程序员---equals和"=="的区别
- 黑马程序员——equals和==的区别
- 【黑马程序员】equals和==的区别
- ==运算符与equals方法
- 黑马程序员--equals方法与==操作符的异同
- SQL2008 附加数据库出错,提示5120错误
- POJ 2411 Mondriaan's Dream 状态压缩
- JAVA_4
- volatile的作用
- 面试题系列,交通灯管理系统学习总结
- 黑马程序员-Equals()与运算符==区别
- linux下无线网卡驱动的解决
- 举例说明Bitmap的用法
- 移动应用市场爆发:抢食APP开发外包新蛋糕
- 谁动了谁的雨伞
- Android学习札记31:收集到的一些关于Handler和Runnable的问题(1)
- ORACLE EBS 关闭启动数据库和应用服务
- asp.net数据缓存
- 简单的文件上传(common-fileupload)