string (Справочник по C#)
Тип string представляет последовательность из нуля или более символов в кодировке Юникод. Тип string — это псевдоним для типа String платформы .NET Framework.
Несмотря на то, что тип string является ссылочным типом, операторы равенства (== и !=) определены для сравнения значений объектов типа string, а не ссылок. Это упрощает проверку равенства строк. Примеры.
string a = "hello";
string b = "h";
// Append to contents of 'b'
b += "ello";
Console.WriteLine(a == b);
Console.WriteLine((object)a == (object)b);
В этом примере отображается "True", а затем "False", поскольку содержимое строк одинаково, но a и b не ссылаются на один и тот же экземпляр строки.
Оператор + служит для объединения строк.
string a = "good " + "morning";
В данном примере создается строковый объект, содержащий текст "good morning".
Строки являются неизменяемыми: содержимое строкового объекта невозможно изменить после создания объекта, хотя из-за синтаксиса изменения кажутся возможными. Например, при написании этого кода компилятор на самом деле создает новый строковый объект для новой последовательности знаков, и этот новый объект получает значение "b". Затем строку "h" можно применять для сборки мусора.
string b = "h";
b += "ello";
Оператор [] служит для доступа только для чтения к отдельным знакам объекта string.
string str = "test";
char x = str[2]; // x = 's';
Строковые литералы имеют тип string и могут быть написаны в двух формах: в кавычках и в кавычках с @. Строковые литералы в кавычках заключены в двойные кавычки (").
"good morning" // a string literal
Строковые литералы могут содержать любые символьные литералы. Escape-последовательности также поддерживаются. В следующем примере используется escape-последовательность \\ для обратной косой черты, \u0066 для буквы "f" и \n для перехода на новую строку.
string a = "\\\u0066\n";
Console.WriteLine(a);
Примечание
Escape-код \udddd (где dddd — четырехзначное число) представляет знак Юникода U+dddd.Также распознаются восьмизначные escape-коды Юникода: \Udddddddd.
Литералы из точных сток начинаются со знака @ и заключены в двойные кавычки. Примеры.
@"good morning" // a string literal
Преимущество точных сток заключается в том, что escape-последовательности не обрабатывается, благодаря чему можно удобно написать, например, полное имя и путь файла:
@"c:\Docs\Source\a.txt" // rather than "c:\\Docs\\Source\\a.txt"
Чтобы включить знак двойной кавычки в строку в кавычках с @, следует использовать знак кавычек дважды:
@"""Ahoy!"" cried the captain." // "Ahoy!" cried the captain.
Знак @ также можно применять для использования указанных идентификаторов (/reference), являющихся ключевыми словами C#.
Дополнительные сведения о строках в C# см. в разделе Строки (Руководство по программированию на C#).
Пример
class SimpleStringTest
{
static void Main()
{
string a = "\u0068ello ";
string b = "world";
Console.WriteLine( a + b );
Console.WriteLine( a + b == "Hello World" ); // == performs a case-sensitive comparison
}
}
/* Output:
hello world
False
*/
Спецификация языка C#
Дополнительные сведения см в Спецификация языка C#. Спецификация языка является предписывающим источником информации о синтаксисе и использовании языка C#.
См. также
Ссылки
Ссылочные типы (Справочник по C#)
Типы значений (Справочник по C#)
Основные понятия
Руководство по программированию на C#
Рекомендации по использованию строк в .NET Framework
Руководство по программированию на C#
Другие ресурсы
Таблица форматирования числовых результатов (Справочник по C#)