我可以将控制字符放在@ -quoted字符串中吗?

时间:2016-04-04 20:02:39

标签: c# string escaping

好的,这个问题完全是出于好奇,因为我知道这样做的一种不可思议的方式。 我知道我可以通过像这样转义控制字符来将控制字符放在“普通”字符串中:

string myString = "abcd\nef\"gh";

然而,我正在考虑逐字c#@引用的字符串格式。我知道我可以通过加倍引用来引用引号,但控制字符呢?

这不起作用:

string myString = @"abcd\nef""gh";

它产生2个字符,其中控制字符应该是,并且实际上将与:

相同
string myString ="abcd\\nef\"gh";

是否有另一种方法可以在逐字母@ quoted字符串中包含控制字符?

2 个答案:

答案 0 :(得分:2)

According to Microsoft

  

在逐字字符串文字中,分隔符之间的字符   是逐字解释的,唯一的例外是a   报价转义序列。

所以不,除了逐字包含它们之外,没有办法在逐字的@ -quoted字符串中包含控制字符。

答案 1 :(得分:0)

好的,我发现我只是通过缩进或放置一个新行来实际包含制表符或换行符,如下所示:

string myString = @"abcd
ef""gh";

现在换行符包含在字符串中。 Tab和换行符可能是我需要的唯一控制字符。