Ребят если у меня есть 2 строки string a = "a" , string b = "a"; то они указывают на один обьект в памяти или в памяти создаються 2 обьекта строки "a"?
Ребят если у меня есть 2 строки string a = "a" , string b = "a"; то они указывают на один обьект в памяти или в памяти создаються 2 обьекта строки "a"?
Если сравнить строки через == то сравниваются сами значения?
Я могу быть не прав, но когда идёт сравнение через == именно строк, то сначала сравниваются ссылки, если одинаковые, то все понятно. если они разные, то сравнение через Equals дальше идёт
Ребят если у меня есть 2 строки string a = "a" , string b = "a"; то они указывают на один обьект в памяти или в памяти создаються 2 обьекта строки "a"?
Здесь у тебя возможно будет включено автоматическое интернирование, потому что строки как литералы заданы. Но если ты сделаешь
var a = "Hello"; var b = GetH() + "ello"
То строки будут еквивалентные но с разными ссылками. И будет 2 объекта.
Потом ты можешь интернирование для b сделать, и в 'b' попадёт ссылка такая же как в 'a'
Ребят если у меня есть 2 строки string a = "a" , string b = "a"; то они указывают на один обьект в памяти или в памяти создаються 2 обьекта строки "a"?