在搜索如何逃脱string.format中的单个报价的同时,我在 因此:逃脱了string.format()中的单个报价

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

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

而VB需要

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

C#为什么需要双反向弹力,而VB单个后斜线?对于C#用户来说,这可能是一个愚蠢的问题,但是尽管我可以阅读C#,但我不习惯编写它。

有帮助吗?

解决方案

在c#中,字符串文字可以包含逃逸序列,例如新行的 n或tab f for Quote。 @"MMM ...")并获得相同的字符串VB。

在VB中,永远不允许逃脱,因此无需逃脱后背。

其他提示

C#支持通过字符串文字中的逃脱序列的原因 \ 特点。 VB没有这种逃脱的机制,因此 \ 被解释为 \.

在C#中,您可以使用逐字字符串获得相同的行为

@"MMM d \'yy 'at' H:mmm"

在c#中,后斜线具有含义( n是newline t tab ....)。因此,Backlslahs本身是一个逃生角色 - 您必须逃脱:)或在字符串的前面放置一个符号 - 这使得“非逃脱的字符串”(通常用于路径)

在C#中将逃脱。您的文字将变成“ h:mmm”的“ mmm d 'yy'。您无需逃脱字符串中的“字符”。如果您要使用“在字符串中,则需要逃脱它,以免结束字符串“ mmm d “ yy ” at “ h:mmm”。或者,您也可以使用 @“”字符串方法,该方法将自动为您逃脱字符(虽然不是“)。因此,您可以编写 @,“这不会 n是两行”

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top