string str1 = "God damn it";
string str2 = str1.Clone().ToString();
string str3 = string.Copy(str1);Console.WriteLine(str1==str2);
Console.WriteLine(str1==str3);Console.WriteLine(str1.Equals(str2));
Console.WriteLine(str1.Equals(str3));这三个都打印出同样的内容,但为什么用"=="和string.Equals()比较都输出"true"呢?文档上说
Clone()和Copy()是有区别的, Copy创建的是一个不同的对象只是内容相同呀
string str2 = str1.Clone().ToString();
string str3 = string.Copy(str1);Console.WriteLine(str1==str2);
Console.WriteLine(str1==str3);Console.WriteLine(str1.Equals(str2));
Console.WriteLine(str1.Equals(str3));这三个都打印出同样的内容,但为什么用"=="和string.Equals()比较都输出"true"呢?文档上说
Clone()和Copy()是有区别的, Copy创建的是一个不同的对象只是内容相同呀
------------------------------
string str1 = "1";
string str2 = "1";
Console.WriteLine(str1.Equals(str2));
输出:true
------------------------------
string str1 = "1";
string str2 = "2";
Console.WriteLine(str1.Equals(str2));
输出:flase
难道是编译器对程序优化的结果?