строка (справочник по C#)
Обновлен: Ноябрь 2007
Тип данных string — это последовательность, содержащая ни одного или любое число знаков Юникода. В платформе.NET Framework string является псевдонимом для String.
Несмотря на то, что тип 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-последовательности также поддерживаются.
string a = "\\\u0066\n";
Эта строка содержит обратную косую черту, букву f и знак новой строки.
Примечание. |
---|
Escape-код \udddd (где dddd — четырехзначное число) представляет знак Юникода U+dddd. Также распознаются восьмизначные escape-коды Юникода: \udddd\udddd. |
Литералы из точных сток начинаются со знака @ и заключены в двойные кавычки. Пример:
@"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#:
2.4.2 Идентификаторы
2.4.4.5 Строковые литералы
4.2.3 Строковый тип
7.9.7 Строковые операторы равенства
См. также
Основные понятия
Руководство по программированию в C#
Руководство по программированию в C#
Ссылки
Ссылочные типы (Справочник по C#)
Типы значений (Справочник по C#)