我可以在verbatim字符串字面值中转义双引号吗?

20 浏览
0 Comments

我可以在verbatim字符串字面值中转义双引号吗?

在C#中的逐字字符串字面量(@\"foo\")中,反斜杠不被视为转义字符,因此使用\\\"来获取双引号是无效的。有没有办法在逐字字符串字面量中获取双引号?\n以下方式是行不通的:\n

string foo = @"this \"word\" is escaped";

0
0 Comments

在C#中,我们可以使用verbatim string literal(逐字字符串)来表示字符串,其中的特殊字符不会被转义。然而,如果我们想要在逐字字符串中使用双引号,就会遇到一些问题。

例如,假设我们想要创建一个包含双引号的字符串,我们可以这样写:

string foo = "this \"word\" is escaped!";

在上面的代码中,我们使用了反斜杠(\)来转义双引号,从而告诉编译器我们想要在字符串中包含双引号。这样,字符串foo的值将是"this "word" is escaped!"。

然而,有时候我们可能希望在逐字字符串中避免使用转义字符,这种情况下,我们可以使用@符号。例如:

string foo = @"this ""word"" is escaped!";

在上面的代码中,我们在逐字字符串前面加上了@符号,并将双引号用两个双引号代替。这样,字符串foo的值将是"this "word" is escaped!"。

总之,我们可以通过转义双引号或使用逐字字符串来包含双引号。两种方法都可以实现相同的效果,但在某些情况下,使用逐字字符串可能更方便。

0
0 Comments

在使用C#中的verbatim字符串字面量时,有时候需要在字符串中包含双引号字符。然而,直接在verbatim字符串中输入双引号会导致编译错误。因此,我们需要找到一种方法来转义双引号字符以避免这个问题。

解决方法是在verbatim字符串中使用两个连续的双引号来表示一个双引号字符。这样,编译器就会将两个连续的双引号解析为一个双引号字符,而不是字符串的结束。

例如,我们可以使用以下代码来在verbatim字符串中转义双引号字符:

string foo = @"this ""word"" is escaped";

在上面的代码中,我们在verbatim字符串中使用两个连续的双引号来表示一个双引号字符。这样,字符串"this "word" is escaped"就会被正确地赋值给变量foo。

通过使用这种转义方法,我们可以在C#中的verbatim字符串字面量中包含双引号字符,而不会导致编译错误。这使得在需要在字符串中使用双引号字符的情况下,我们能够轻松地处理这个问题。

0
0 Comments

使用重复的双引号来转义双引号。

当我使用.Raw()时,四个双引号会破坏我的字符串。

你可以不使用字符串字面值吗?似乎Html.Raw()会确保它是一个字符串...

还可以与字符串插值一起使用:$@"this ""{wordVar}"" is escaped";

也许要明确这是否是唯一的方法?关于后来的发展,比如C# 6呢?(但是不要包括"Edit:","Update:"或类似的内容-答案应该看起来像是今天写的。)

0