ВУЗ:
Составители:
Рубрика:
121
Console.WriteLine("world = {0}; sssss={1}; stryes={2};" +
" strye= {3}", world, sssss, stryes, strye);
}
Объект world создан без явного вызова конструктора, а объекты sssss,
stryes, strye созданы разными конструкторами класса String.
Отметим, что не допускается явный вызов конструктора по умолчанию –
конструктора без параметров. Нет также конструктора, которому в качестве
аргумента можно передать обычную строковую константу. Соответствующие
операторы в тексте закомментированы.
8.3.2. Строковые константы
В C# существуют два вида строковых констант:
• обычные константы, которые представляют строку символов, заключенную
в кавычки;
• @-константы, заданные обычной константой с предшествующим знаком @.
В обычных константах некоторые символы интерпретируются особым
образом. Связано это прежде всего с тем, что необходимо уметь задавать в
строке непечатаемые символы, такие, как, например, символ табуляции.
Возникает необходимость задавать символы их кодом – в виде escape-
последовательностей. Для всех этих целей используется комбинация символов,
начинающаяся символом "\" – обратная косая черта. Так, пары символов: "\n",
"\t", "\\", "\"" задают соответственно символ перехода на новую строку, символ
табуляции, сам символ обратной косой черты, символ кавычки, вставляемый в
строку, но не сигнализирующий о ее окончании. Комбинация "\xNNNN" задает
символ, определяемый шестнадцатеричным кодом NNNN. Хотя такое решение
возникающих проблем совершенно естественно, иногда возникают неудобства.
Например, при задании констант, определяющих путь к файлу, приходится
каждый раз удваивать символ обратной косой черты. Это одна из причин, по
которой появились @-константы.
В @-константах все символы трактуются в полном соответствии с их
изображением. Поэтому путь к файлу лучше задавать @-константой.
Единственная проблема в таких случаях: как задать символ кавычки, чтобы он
не воспринимался как конец самой константы. Решением является удвоение
символа. Вот соответствующие примеры:
//Два вида констант
s1 = "\x50";
s2 = @"\x50""";
b1 = (s1==s2);
Console.WriteLine("s1={0}, s2={1}, b1={2}", s1, s2, b1);
s1 = "c:\\c#book\\ch5\\chapter5.doc";
s2 = @"c:\c#book\ch5\chapter5.doc";
b1= (s1==s2);
Страницы
- « первая
- ‹ предыдущая
- …
- 115
- 116
- 117
- 118
- 119
- …
- следующая ›
- последняя »