строка (справочник по 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 и знак новой строки.

362314fe.alert_note(ru-ru,VS.90).gifПримечание.

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#)

Типы значений (Справочник по C#)

Другие ресурсы

Справочник по C#

Таблица форматирования числовых результатов (справка по C#)