2015-02-06 78 views
0

嗯,這是一個noob問題...C#包含不工作的 「」

我試圖使用方法:

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

但我收到消息:

換行中的換行

如何使用此方法檢測字符串中的「\」?

回答

5

\字符串中的字符用於轉義其他字符 - 例如,\n是換行符,而\"是雙引號字符。

的方式來獲得\字符是逃避它("\\")或@所以編譯器不轉義字符(@"\")到前言字符串。

+0

什麼是更好的? – user3571412 2015-02-06 01:38:25

+1

這是一個偏好問題。個人在這種情況下,我會逃避('「\\」'),只使用'@'來處理更長或更混亂的字符串 - 文件路徑或正則表達式等。 – TheEvilPenguin 2015-02-06 01:39:34

+0

我知道您將通過編輯修復註釋,但我喜歡你最後評論的諷刺意味。 – 2015-02-06 01:40:46

1

你可以做這樣的事情

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

的問題是,在C#中,\是轉義字符,從而\"是你如何包括在字符串中的雙引號,而不是終止 - 注意文即使在堆棧溢出也變成「字符串」顏色。爲了包括轉義字符,雙逃逸,從而:

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

可替換地,串「文字」允許忽略雙引號的任何轉義字符短(這是通過將其插入兩次轉義)

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

很好的解釋與固體回落示例 – Tommy 2015-02-06 01:38:57