C#で文字列複写
参照系の参照を渡した先で変更しても、元が変更されてしまう模様。
・具体例
こうすると、「str_a」「str_b」共に「123」が入っています。
string str_a = "abc",
str_b = str_a; // 参照を渡す// 渡した先で変更すると…
str_b = "123";
…まぁ、参照を渡しているわけなので、同じポインタをさしている形になるらしく、
当然といえば当然?なお話。
…はてさて、それではstr_aの値を一旦別に取っておくにはどうするのか。
これまた単純。「System.String.Copy()」を使う。
こうすると、「str_a -> "abc"」「str_b -> "123"」という内容になる。
string str_a = "abc",
str_b = String.Copy( str_a ); // コピーした文字列を渡す。// コピーしたもの(完全に別物)なので、str_aは変化なし
str_b = "123";