2015-02-06 2 views
0

Ну, это нуб вопрос ...C# Содержит не работают с ""

Я пытаюсь использовать:

if (string.Contains("\")) { return false; } 

Но я получаю сообщение:

Newline в постоянном

Как я могу использовать этот метод для обнаружения «\» в строке?

ответ

5

Символ в строке используется для вызова других символов - например, \n - символ новой строки, а \" - символ двойной кавычки.

Пути, чтобы получить \ характер либо, чтобы избежать его ("\\") или предварить строку с @ поэтому компилятором не ускользает символов (@"\").

+0

Что лучше? – user3571412

+1

Это вопрос предпочтения. Лично в этом случае я бы сбежал ('' \\ "') и использовал только '@' для более длинных или более запутывающих строк - пути к файлам или регулярные выражения и т. Д. – TheEvilPenguin

+0

Я знаю, что вы исправите комментарий, отредактировав его, но Мне нравится ирония вашего последнего комментария. –

1

вы можете сделать что-то вроде этого

if (string.Contains("\\")) { return false; } 
6

Проблема заключается в том, что в C#, \ является маскирующим, таким образом \" как включить двойные кавычки в строке, а не прекратить - обратите внимание, что текст превращает «строковый» цвет даже в переполнение стека. Для того, чтобы включить символ побега, двойной побег, таким образом:

if (string.Contains("\\")) { return false; } 

В качестве альтернативы, строка «литералы» позволят вам игнорировать любой маскирующие доходя кавычки (который спасся с помощью вставки дважды)

if (string.Contains(@"\")) { return false; } 
+0

Хорошее объяснение с твердым возвратом примеров – Tommy

Смежные вопросы