Поиск…


Класс System.String

В C # (и .NET) строка представлена ​​классом System.String. Ключевое слово string - это псевдоним для этого класса.

Класс System.String неизменен, т. Е. После создания его состояние не может быть изменено.

Таким образом, все операции, выполняемые над строкой типа Substring, Remove, Replace, concatenation с помощью оператора + т. Д., Создадут новую строку и вернут ее.

См. Следующую программу демонстрации -

string str = "mystring";
string newString = str.Substring(3);
Console.WriteLine(newString);
Console.WriteLine(str);

Это будет печатать string и mystring соответственно.

Строки и неизменность

Неизменяемые типы - это типы, которые при изменении создают новую версию объекта в памяти, вместо того, чтобы изменять существующий объект в памяти. Простейшим примером этого является встроенный тип string .

Принимая следующий код, который добавляет «мир» к слову «Привет»,

string myString = "hello";
myString += " world";

В этом случае происходит то, что новый объект создается при добавлении к string во второй строке. Если вы сделаете это как часть большого цикла, есть вероятность, что это вызовет проблемы с производительностью в вашем приложении.

Изменчивым эквивалентом для string является StringBuilder

Принимая следующий код

StringBuilder myStringBuilder = new StringBuilder("hello");
myStringBuilder.append(" world");

Когда вы запустите это, вы сами модифицируете объект StringBuilder в памяти.



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow