C# object转换类型问题

string str = "this is a string.";
string strCopy = string.Copy(str);
bool testbool = ((object)str == (object)strCopy);
Console.WriteLine(testbool);
为什么是false

对于Object来说,有值相等和引用相等两种,在你的例子中str和strCopy是值相等而不是引用相等,因为str和strCopy是两个不同的对象,存在内存不同的地址,所以他们不是引用相等;str和strCopy的值都是"this is a string.",所以他们是值相等的。
判断引用相等用==,判断值相等用Equals(object)。
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-11-05
两个内存地址吧,string是引用类型
第3个回答  2008-11-05
C#中的String 有点特殊,可以到网上搜一下,有很详细的描述,简单来说同意 kadbbz 的答案,如果用指针来说的话,就是两个对象指向不同的内存地址,呵呵
相似回答
大家正在搜