Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
448 views
in Technique[技术] by (71.8m points)

c# - How to use verbatim strings with interpolation?

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());

the above 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...
" +
$"Adding "{x}" and {this.Y()} to foobar:
" +
x.GetLog().ToString();

How to use both verbatim and interpolated strings together?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

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 @$.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...