私は文字列が変更不可能であることを知っています。私たちは変更できません。新しい文字列オブジェクトを作成し、それに値を割り当ててから、同じ文字列オブジェクトに別の値を割り当てます。作成され、新しい値で割り当てられたオブジェクト。のは、私が持っているとしましょう:私はConsole.WriteLine(str);
を書く文字列はどのようにC#で動作しますか?
string str = "dog";
str = "cat";
場合、それはcat
を返します。 内部には2つのオブジェクトがありますか?しかし、彼らは同じ名前を持っていますか?どのように機能するのですか?私はGoogleに関するいくつかの調査をしましたが、私はまだ私に十分なものを見つけていないので、私はこれについての私の考えを明確にすることができます。 私は文字列が参照型であることを知っているので、スタック内にヒープの値を参照するオブジェクトがあります。この場合、何が起きていますか?(上記のコードを参照)。
写真をアップロードしました。スタックのアイデアやヒープが間違っていると私はお詫びします。私はこの質問をしています。 写真は、コードの最初の行(string str = "dog";
)に何が起こっているかを反映していますか?そして、コードの2行目で何が起こるはずですか?ヒープ内のdog
の値は変更されますか?そして、それを参照するスタック内の新しいオブジェクトが作成されますか?それでは、以前にあったオブジェクトはどうなりますか?彼らは同じ名前ですか? 非常に多くのご質問をおかけして申し訳ありませんが、正しく理解して何が起こっているのかを知ることは非常に重要だと思います...
あなたの回答のすべてが非常に説明的なので、私は答えを選ぶのが非常に難しいです、私はこの問題について、今感謝しています! – AlexGH