Sri*_*uku 25 .net c# string escaping verbatim-string
我对c#有点新,我在这一点上卡住了,我有一个常规的字符串,我用它\来逃避",逃到这里意味着逃避编译器的解释",并"在屏幕上打印,而我得到预期的输出 - >
class Program
{
static void Main(string[] args)
{
string s1 = "This is a \"regular\" string";
System.Console.WriteLine(s1);
System.Console.Read();
}
}
Run Code Online (Sandbox Code Playgroud)
现在,我有一个逐字字符串,我试图以与上面相同的方式逃避"使用\..-->
class Program
{
static void Main(string[] args)
{
string s2 = @"This is \t a \"verbatim\" string";//this would escape \t
System.Console.WriteLine(s2);
System.Console.Read();
}
}
Run Code Online (Sandbox Code Playgroud)
为什么以上不起作用?
Dar*_*ren 39
使用双引号:
string s2 = @"This is \t a ""verbatim"" string";
Run Code Online (Sandbox Code Playgroud)
如果要编写包含双引号的逐字字符串,则必须编写两个双引号.
string s2 = @"This is \t a ""verbatim"" string";
Run Code Online (Sandbox Code Playgroud)

这在C#规范的2.4.4.5节中有所介绍:
2.4.4.5字符串文字
C#支持两种形式的字符串文字:常规字符串文字和逐字字符串文字.
常规字符串文字由用双引号括起来的零个或多个字符组成,如"hello"中所示,并且可以包括简单转义序列(例如用于制表符的\ t)和十六进制和Unicode转义序列.
逐字字符串文字由@字符后跟双引号字符,零个或多个字符以及结束双引号字符组成.一个简单的例子就是@"你好".在逐字字符串文字中,分隔符之间的字符是逐字解释的,唯一的例外是quote-escape-sequence.特别是,简单的转义序列和十六进制和Unicode转义序列不会在逐字字符串文字中处理.逐字字符串文字可以跨越多行.
| 归档时间: |
|
| 查看次数: |
11611 次 |
| 最近记录: |