以下のコードを見てください。
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));
}
}
結果は次のとおりです。
False
True
そして今、これを考えてみましょう:
using System;
class MyClass
{
static void Main()
{
object o = ".NET Framework";
object o1 = ".NET Framework";
Console.WriteLine(o == o1);
Console.WriteLine(o.Equals(o1));
}
}
結果は次のとおり
です
。
「==」はオブジェクト参照が同じかどうかを比較し、「.Equals()」は内容が同じかどうかを比較します。これらのコードの違いを知りたいですか?!
object o1 = new string(".NET Framework".ToCharArray());
と
object o1 = ".NET Framework";
どちらもオブジェクトになりますが、結果が異なるのはなぜですか?