我有一个插值字符串,它以一个参数结尾,后面跟着一个闭合大括号。
需要对其进行格式化处理,但是该字符串将第一个双大括号视为转义的大括号,并将其余的视为用于闭合参数的大括号:
> $"foo:{16:x}"
"foo:10"
> $"foo:{16:x}}}"
"foo:x}"
我应该如何正确编写插值字符串,以便获得
foo:10}
?我有一个插值字符串,它以一个参数结尾,后面跟着一个闭合大括号。
需要对其进行格式化处理,但是该字符串将第一个双大括号视为转义的大括号,并将其余的视为用于闭合参数的大括号:
> $"foo:{16:x}"
"foo:10"
> $"foo:{16:x}}}"
"foo:x}"
foo:10}
?$"foo:{16:x}{'}'}" // or $"foo:{16:x}{"}"}"
}
放在外面:$"foo:{16:x}{null}}}"
或 $"foo:{16:x}{""}}}"
同样可行。但这可能只是一个观点问题。 - user743382FormattableString
:) 编译器积极地不喜欢这样做 - 请参见使用Foo(string x)
和Foo(FormattableString x)
的Foo($"test {val}");
来了解我的意思。 - Marc GravellFoo(string)
而不是Foo(FormattableString)
- 这个可以吗? - Marc Gravell
}
转义为\u007d
,甚至会出现一个特殊的错误消息!显然有人非常喜欢他们的语法。 - Jeroen Mostert错误 CS8087:在插值字符串中,'}'字符只能通过加倍' }} '来转义。
这似乎很刻薄。 - BanksySan