String.Copyメソッドは文字列の複製を行う静的メソッドです。 見かけ上の動作は文字列変数の単なる代入と似ていますが、Copyメソッドでは指定された文字列と同じ内容の新しいインスタンスが作成される点が異なります。
String.Copyメソッドを使って文字列インスタンスの複製を作成する
Imports System
Class Sample
Shared Sub Main()
Dim s1 As String = "foo"
Dim s2 As String
Dim s3 As String
s2 = s1 ' 文字列s1をs2に代入する
s3 = String.Copy(s1) ' 文字列s1の複製を作成し、s3に代入する
Console.WriteLine(s1)
Console.WriteLine("{0} {1}", s2, s2 Is s1) ' s1とs2は同一のインスタンスへの参照となる
Console.WriteLine("{0} {1}", s3, s3 Is s1) ' s1とs3は同一の文字列だが異なるインスタンスへの参照となる
End Sub
End Class
実行結果
foo foo True foo False
代入と複製の違い、参照の比較についてはオブジェクトの複製や値型と参照型 §.同値性・同一性の比較などを参照してください。