==运算符用于比较两个操作数是否相对。对于基本数据类型,就不用多说了,没有太大问题
对于引用数据类型,如类对象、string,可能就有一点疑惑
string s1="test";
string s2=string.copy(s1);
Console.WriteLine(s1==s2);
Console.WriteLine((object)s1==(object)s2);
输出结果是:
true
false
稍微修改一下
string s1="test";
string s2=s1;
或string s2="test";
则输出结果是:
true
true
可能对于string类型常量,是保存在堆栈中的,然后string类型对象就引用同一个对象
而用string.copy()方法,会在堆栈中产生一个新的string对象
对于==操作符:
如果两个基本数据类型的操作数,它们的数值相等,它们就被认为是相等的
如果两个object类型的表达式都指向相同的对象或者都是空,它们被认为是相等的
如果字符串实例有相同的长度并且在每个字符的位置都相同或者都为空,它们被认为是相等的
---以上3条是在某本书上看到的。
阅读(1400) | 评论(0) | 转发(0) |