string s1 = "hi";
string s2 = "hi";
bool x = (s1 == s2);
Console.WriteLine(bool.Parse(""+x)); //printed as true and my point of interest
x = s1.Equals(s2);
Console.WriteLine(bool.Parse("" + x));//printed as true
s1 = s2;
x = (s1 == s2);
Console.WriteLine(bool.Parse("" + x));//printed as true
x = s1.Equals(s2);
Console.WriteLine(bool.Parse("" + x));//printed as true
参照を比較するためs1==s2
、false として返される必要があります。しかし、出力はtrueになります。文字列のみの場合、これを観察します。これが他のクラスのオブジェクトに対して行われると、正しく false と評価されます。この例外的な動作が文字列で見られるのはなぜですか?