В приведенном ниже коде я проверяю равенство ссылок на объекты.
string x = "Some Text";
string y = "Some Other Text";
string z = "Some Text";
Console.WriteLine(object.ReferenceEquals(x, y)); // False
Console.WriteLine(object.ReferenceEquals(x, z)); // True
Console.WriteLine(object.ReferenceEquals(y, z)); // False
y = "Some Text";
Console.WriteLine(object.ReferenceEquals(x, y)); // True
Console.WriteLine(object.ReferenceEquals(x, z)); // True
Console.WriteLine(object.ReferenceEquals(y, z)); // True
Здесь:
x
и z
относится к одному и тому же объекту; Могу сказать, что x
интернирован, а z
используется в тахт версии. Ну, я не уверен в этом; Пожалуйста, поправьте меня, если я ошибаюсь.y
, присвоив ему то же значение, что и x. Я думал, что здесь будет создан новый объект; но я ошибся, он использовал ту же ссылку.Мои вопросы:
.net
строковые стажеры для каждой строки, которую я использую?