请看下边c#代码解释下,Thanks

来源:百度知道 编辑:UC知道 时间:2024/05/21 22:57:33
string m = "TestEqual";
string n = string.Copy(m);
Console.WriteLine((object)m==(object)n);
输出的为什是false?两个的值都是一样的啊。

值是一样的,可是内存地址不一样啊

(object)m==(object)n
在比较前m和n都被强制转换为object
所以这里的==是两个对象之间的比较

对于 string 以外的引用类型,如果两个操作数引用同一个对象,则 == 返回 true。对于 string 类型,== 比较字符串的值。