Нет необходимости использовать escape Seq.для 'в C #? - PullRequest
5 голосов
/ 20 января 2011

На MSDN я могу прочитать, что \' является escape-последовательностью для ' char. Однако я могу использовать его в строке без escape-последовательности, например:

Console.WriteLine("Press 'X' ");

Как это возможно?

Ответы [ 4 ]

7 голосов
/ 20 января 2011

Но как бы вы написали это как char?

char c = '\'';
5 голосов
/ 20 января 2011

char (односимвольный литерал) - это тип данных, отличный от string (многосимвольный литерал).

В C # a char объявлен как:

var c = 'c';

, тогда как string объявлен как:

var s = "asdf";

Как видите, одиночную кавычку (') нужно будет экранироватьобъявить char, содержащий одинарные кавычки:

var c = '\''; 
3 голосов
/ 20 января 2011

\' экранирование необходимо для букв литералов. Причина в том, что ' можно интерпретировать как буквальный граничный символ. Для строк это бессмысленно, потому что нечего путать. В strings по очереди \" имеет смысл.

0 голосов
/ 20 января 2011

Это говорит о том, что вы должны бежать 'для типа данных char.

char c = ''';  // compiler throws error
char c = '\''; // valid
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...