String.Format转义VB vs C#

use*_*702 0 .net c# vb.net string.format escaping

在搜索如何在String.Format中转义单引号时,我在SO处找到答案:在String.Format()中转义单引号

虽然VB似乎有所不同.我测试了它,确实需要C#

string s = DateTime.Now.ToString("MMM d \\'yy 'at' H:mmm");
Run Code Online (Sandbox Code Playgroud)

而VB需要

Dim s As String = Now.ToString("MMM d \'yy 'at' H:mmm")
Run Code Online (Sandbox Code Playgroud)

为什么C#需要双反斜杠,而VB只需要一个反斜杠?这对C#用户来说可能是一个愚蠢的问题,但是虽然我可以阅读C#,但我不习惯写它.

Gid*_*rth 6

在C#中,字符串文字可以包含转义序列,例如\n表示换行符或\ t表示制表符或\"表示引号.如果不需要转义,可以在文字前加上@(例如:)@"MMM ..."和得到相同的字符串VB.

在VB中,永远不允许转义,因此不需要转义反斜杠.