Предполагая, что у меня есть следующие строки:
string str1 = "Hello World!";
string str2 = str1.SubString(6, 5); // "World"
Я надеюсь, что в приведенном выше примере str2
не копирует "Мир", а просто заканчивается тем, что является новой строкой, указывающей на одно и то же пространство памяти, только с началом смещения 6 и длиной 5.
В действительности я имею дело с некоторыми потенциально очень длинными строками, и мне интересно, как это работает за кулисами по соображениям производительности. Я не знаком с IL, чтобы посмотреть на это.