次のコードを検討してください。
public static void Main()
{
string str1 = "abc";
string str2 = "abc";
if (str1 == str2)
{
Console.WriteLine("True");
}
else
{
Console.WriteLine("False");
}
Console.ReadLine();
}
出力は「True」です。string
は.Netの参照型であり、2つの異なるオブジェクトを比較していますが、それでも出力は「True」です。
ToString()
比較する前に、両方のオブジェクトのメソッドを内部的に呼び出しているためですか?- それとも a
string
が不変型だからですか?同じ値を持つ2 つの完全に異なるstring
オブジェクトは、ヒープ上の同じメモリ位置を指しますか?
string
比較はどのように行われますか?
メモリ割り当てはヒープでどのように機能しますか? string
同じ値を持つ2 つの異なるオブジェクトは、同じメモリ位置を指しますか、それとも異なるメモリ位置を指しますか?