2015-02-06 52 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