How do you use verbatim strings with interpolation?

梦想的初衷 提交于 2019-11-26 22:46:49

问题


In C#6 there is a new feature: interpolated strings.

These let you put expressions directly into code, rather than relying on indexes:

string s = string.Format("Adding \"{0}\" and {1} to foobar.", x, this.Y());

Becomes:

string s = $"Adding \"{x}\" and {this.Y()} to foobar.";

However, we have a lot of strings across multiple lines using verbatim strings (mainly SQL statements) like this:

string s = string.Format(@"Result...
Adding ""{0}"" and {1} to foobar:
{2}", x, this.Y(), x.GetLog());

Reverting these to regular strings seems messy:

string s = "Result...\r\n" +
$"Adding \"{x}\" and {this.Y()} to foobar:\r\n" +
x.GetLog().ToString();

How do I use both verbatim and interpolated strings together?


回答1:


You can apply both $ and @ prefixes to the same string:

string s = $@"Result...
Adding ""{x}"" and {this.Y()} to foobar:
{x.GetLog()}";

Since being introduced in C# 6, interpolated verbatim strings had to start with the tokens $@, but starting with C# 8, you can use either $@ or @$.



来源:https://stackoverflow.com/questions/31638579/how-do-you-use-verbatim-strings-with-interpolation

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!