最近我发现我可以通过写两个“ex "
来写@"abc""def"
。我发现@字符串文字很有用。但是如何在标签或换行符中写?是”“唯一可用的技巧?我尝试搜索msdn,但我找不到它。
答案 0 :(得分:25)
当您使用@
修饰符时,您使用的是名为逐字字符串文字的内容。
这意味着您在开始和结束引号之间输入的任何内容都将用在字符串中。
这包括Carraige Return,Line Feed,Tab等。
简短回答:只需按Tab键即可。
但是,有一点需要注意。您的IDE可能决定插入空格而不是制表符,因此最好使用连接。答案 1 :(得分:15)
没有一个正常的转义序列在逐字字符串文字中起作用(这就是重点!)。如果你想在那里有一个标签,你要么必须放入实际的标签字符,要么使用字符串连接:
string x = @"some\stuff" + "\t" + @"some more stuff";
你首先使用的是逐字字符串文字?可能有更好的方法来处理它。
答案 2 :(得分:8)
引用转义序列(""
)是唯一适用于verbatim string literals的“转义”。所有其他转义仅在常规字符串文字中工作。
作为一种解决方法,你可以使用像这样丑陋的东西:
string.Format(@"Foo{0}Bar", "\t");
或在字符串中包含实际制表符。这应该也适用于常规字符串文字,但是空格,尤其是制表符,通常不能在不同的文本编辑器中存活: - )
对于新行,它可以说更容易:
@"Foo
Bar";
答案 3 :(得分:2)
一旦你用@开始一个字符串,你可以在它们之间放置任何东西,也可以选项卡或换行符:
string test = @"test
bla
bjkl";
上面的字符串将包含4个换行符。
答案 4 :(得分:1)
使用@语法时,将禁用所有字符转义。因此,要获得制表符或换行符,您必须插入文字TAB或换行符。这很简单 - 只需按下键盘上的TAB或ENTER按钮即可。请注意,如果设置为输入空格而不是文字TAB字符,则可能需要更改TAB和Visual Studio的行为。
答案 5 :(得分:1)
字符串前的@假设你没有转义,所以你需要连接:
string value = @"Hello ""big""" +"\t"+ @"world \\\\\";
换句话说,是“”是唯一可用的技巧。
答案 6 :(得分:1)
如果您开始在字符串中需要“特殊”字符,那么您可能应该使用普通字符串“”并使用\来转义它们而不是使用@“”。
您在字符串中存储了哪些数据?你有什么理由在@“”中需要它?
答案 7 :(得分:1)
我不知道为什么现在没有人建议在您的插值字符串中插入{"\t"}
,对我来说,比必须使用字符串格式要好。
这有效:$@"Foo{"\t"}Bar";
或串联字符串
答案 8 :(得分:0)
只需在字符串中写一个标签或换行符即可。 @“”字符串文字识别代码文件中写入的每个字符。相反,转义序列不起作用。
答案 9 :(得分:0)
我肯定不会输入标签,因为您的编辑器可能会插入一些空格。使用\ t是更好的选择。
答案 10 :(得分:0)
最正确的方法:
string str = string.Format(
CultureInfo.CurrentCulture, // or InvariantCulture
@"abc{0}cde",
"\t");
和
string str = string.Format(
CultureInfo.CurrentCulture, // or InvariantCulture
@"abc{0}cde",
Environment.NewLine);
你可以在字符串中出现{0}
多个外观。
答案 11 :(得分:-2)
使用'\\ t'来转义第一个反斜杠,然后它将被解释为选项卡。很抱歉这个混乱...这个网站逃过了第一个斜线...真的在编辑时有三个斜线......