请看下面的代码:
并且。
两者都会生成一个对象,但为什么结果不同呢?
using System;
class MyClass
{
static void Main()
{
object o = ".NET Framework";
object o1 = new string(".NET Framework".ToCharArray());
Console.WriteLine(o == o1);
Console.WriteLine(o.Equals(o1));
}
}
结果如下:
假
真
现在考虑这个:
using System;
class MyClass
{
static void Main()
{
object o = ".NET Framework";
object o1 = ".NET Framework";
Console.WriteLine(o == o1);
Console.WriteLine(o.Equals(o1));
}
}
执行结果为:
True
True
“==”比较对象引用是否相同,而“.Equals()”比较内容是否相同。我想知道这些代码之间有什么不同?!
object o1 = new string(".NET Framework".ToCharArray());
并且。
object o1 = ".NET Framework";
两者都会生成一个对象,但为什么结果不同呢?
object foo = "bar"
并不会使"bar"
不再是一个字符串。内部化将导致在编译时相同的字符串引用相同的字符串实例,因此比较它们的引用将显示它们相等。无论您将它们称为字符串还是对象(或其中任何类型,如果有的话),都会发生这种情况。 - CodeCaster