c#一下是正题

来源:百度知道 编辑:UC知道 时间:2024/06/06 02:06:20
string str = "this is a string.";
Console.WriteLine(str);
string strCopy = string.Copy(str);
Console.WriteLine(strCopy);
bool testbool = (str == strCopy);
Console.WriteLine(testbool);
testbool = ((object)str == (object)strCopy);
最后输出是false,为什么str=!strCopy

bool testbool=(str==strCopy);\\判断的是str和strCopy值是否相等,所以为True

bool testbool=((object)str==(object)strCopy);\\判断的是str和strCopy代表是否同一个对象.所以false

它们的地址不同,引用类型的比较不能只看字面值。

很奇怪,我也这么想
应该是TRUE才对啊
你重新生成一下试试

我把你的代码放在VS2005中调试了下,发现跟你的输出结果不同,我的结果是true。要不你在重新调试看看。