C++歴20年、C#歴半年の者です。C#において、string型は参照型の扱いじゃないですか。"bbb";Testの値は"aaa"のまま。普通の参照型なら"bbb"に変わるはずで、変わらないと言うことはoperator=()がオーバーライドされているのか?と思いきや、C#ではoperator=()はオーバーライド不可能ときたもんです。頭の中に???がいっぱいです(笑)。text2=text1;text2="bbb";と同じだよね。std::wstring(L"bbb");ってことになるわけだけど。どこが疑問になるのかが疑問。編集(投稿者)どうやら私は何か大きな勘違いをしているようですね。私が知りたいのは、以下のようなパターンとの違いです。Test.Tmpの値は"bbb"に変化します。Test.Tmpの値は"bbb"に変化します。型)の扱いについては、以下のページが参考になると思います。