C# object转换类型问题

来源:百度知道 编辑:UC知道 时间:2024/06/22 12:43:13
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)。

两个内存地址吧,string是引用类型

http://zhidao.baidu.com/question/36086000.html?si=1

C#中的String 有点特殊,可以到网上搜一下,有很详细的描述,简单来说同意 kadbbz 的答案,如果用指针来说的话,就是两个对象指向不同的内存地址,呵呵