String C# представляю собой переменную, содержащую текст. Внутри программы текст хранится как набор символов (char). Строки C# не содержат нуль-терминалов на конце. Потому строка может содержать любое количество символов.

Подпишись на группу Вконтакте и Телеграм-канал. Там еще больше полезного контента для программистов.
А на YouTube-канале ты найдешь обучающие видео по программированию. Подписывайся!

Для объявления строки может быть использовано несколько ключевых слов. Таким образом, string и System.String эквивалентны. Если точнее, string является псевдонимом String. Доступно множество разнообразных методов для сравнения, создания и обработки строк.

Инициализация строк в C#

На самом деле, существует несколько способов объявления и инициализации строк.

// Объявление строки.
string newString;

// Инициализация новой null - строки.
string nullString = null;

// Инициализация пустой строки.
// String.Empty - константа равная "".
// Хорошим тоном является сравнение строки с String.Empty, а не с "".
string emptyString = String.Empty;

// Инициализация строки с регулярным строковым литералом.
string somePath = "c:\SomePath";

// Инициализация строки с дословным строковым литералом.
string anotherPath = @"c:AnotherPath";

// Объявление строки при помощи System.String.
System.String salutation = "Hello World!";
			
// Инициализация строки через массив символов.
char[] chars = { 'A', 'B', 'C' };
string fromCharsArray = new string(chars);

Для инициализации пустой строки рекомендуется использовать string.Empty. Также, следует проверять наличие значения у строки перед её использованием. Для проверки лучше всего использовать метод string.IsNullOrEmpty(String).

Строки C# — особенности

Строки являются неизменяемыми. То есть, после инициализации значение строки изменить нельзя. По сути, любые операции над строками порождают новые объекты в памяти. Сложение строк, взятие подстроки, удаление символа, — всё это возвращает новую строчку и выделяет для нее память.

Возможность использования буквальных литералов. Иногда возникает необходимость передать текст со всеми переносами, отступами и иными особенностями. Именно в таких случаях может быть использован символ @ перед строкой. Понятнее будет на примере:

var firstText = "Мама мыла раму." +
	" Большую раму." +
	" Действительно большую раму.";

var secondText = @"Мама мыла раму.
Большую раму.
Действительно большую раму.";

Console.WriteLine(firstText);
Console.WriteLine();
Console.WriteLine(secondText);
 Использование буквальных литералов
Использование буквальных литералов

Как вы видите, первое выражение выводится в одну строку. Вторая же попытка отображается ровно так, как была введена. Именно в этом сила буквальных литералов.

Еще одной приятной особенностью строк является возможность обращаться с ними, как с массивом. То есть, имея некоторый текст, мы можем получить любой его символ по индексу. Это в определенной степени облегчает нам жизнь при работе со строками.

В сумме по String C#

Итак, класс String предоставляет действительно впечатляющий набор методов по работе со строками. Простой выбор подстрок, поиск и замена символов, — фактически для всего найдется метод.

Кроме того, рекомендую прочитать статью SOLID C#. А также подписывайтесь на группу ВКонтакте, Telegram и YouTube-канал. Там еще больше полезного и интересного для программистов.