C# string的驻留机制

using System;

namespace CSharpConsoleApp

{

class MyClass

{

static void Main()

{

string str1 = "111";

string str2 = str1;

Console.WriteLine(object.ReferenceEquals(str1, str2)); //true

string str3 = "111";

string str4 = "111";

Console.WriteLine(object.ReferenceEquals(str3, str4));//true

string str5 = "111";

string str6 = "1"+"11";

Console.WriteLine(object.ReferenceEquals(str5, str6));//true

string str7 = "111";

string str8 = "1";

string str9 = str8 + "11";

Console.WriteLine(object.ReferenceEquals(str7, str9));//false

string str10 = "111";

string str11 = "1";

string str12 = string.Intern(str11 + "11");

Console.WriteLine(object.ReferenceEquals(str10, str12));//true

string str13 = "1";

string str14 = string.Intern(str13 + "11");

string str15 = "111";

Console.WriteLine(object.ReferenceEquals(str14, str15));//true

Console.ReadKey();

}

}

}

你可能感兴趣的:(String)