C# の string オブジェクトの参照値
C#の文字列型(object)の参照についていくつか試してみた結果
記事にあったもの
実データはコピーされず、参照先が同じになります
コンパイラの最適化によるものだろうか、定数はまとめられるらしい
記事にあったもの
static void Main(string[] args) { string a = "hello"; string b = "h"; b += "ello"; Console.WriteLine(a == b); // True Console.WriteLine(object.ReferenceEquals(a, b)); // Flase }
実データはコピーされず、参照先が同じになります
static void Main(string[] args) { string a = "hello"; string b = a; Console.WriteLine(a == b); // True Console.WriteLine(object.ReferenceEquals(a, b)); // True }
コンパイラの最適化によるものだろうか、定数はまとめられるらしい
static void Main(string[] args) { string a = "hello"; string b = "he" + "llo"; Console.WriteLine(a == b); // True Console.WriteLine(object.ReferenceEquals(a, b)); // True }
static void Main(string[] args) { string a = "hello"; string b = Hello(); Console.WriteLine(a == b); // True Console.WriteLine(object.ReferenceEquals(a, b)); // True } static string Hello() { string s = "hello"; return s; }
コメント