Строки, дата и время в C#. Паттерны GoF. Лекция 4
Строки Тип System.String — представляет неизменяемый упорядоченный набор символов. Является прямым потомком Object и ссылочным типом, по этой причине строки всегда размещаются в куче. Тип String реализует несколько интерфейсов: IComparable /IComparable, ICloneable, IConvertible, IEnumerable/IEnumerable и IEquatable. Может иметь значение null. Максимальный размер объекта String может составлять в памяти 2 ГБ, или около 1 миллиарда символов. Создавать сроки можно, как используя переменную типа string и присваивая ей значение, так и применяя один из конструкторов класса String: var s1 = "hello"; var s2 = null; var s3 = new String('a', 6); // результатом будет строка "aaaaaa" var s4 = new String(new char[] { 'w', 'o', 'r', 'l', 'd' }); Строка как набор символов Так как строка хранит коллекцию символов, в ней определен индексатор для доступа к этим символам: public char this[int index] { get; } Применяя индексатор, мы можем обратиться к строке как к массиву символов и получить по индексу любой из ее символов: var s1 = "hello"; var ch1 = s1[1]; Console.WriteLine(ch1); Console.WriteLine(s1.Length);