你如何使用逐字string插值?
在C#6中有一个新特性:插入string。
这些让你把expression式直接放到代码中,而不是依靠索引:
string s = string.Format("Adding \"{0}\" and {1} to foobar.", x, this.Y());
变为:
string s = $"Adding \"{x}\" and {this.Y()} to foobar.";
然而,我们有很多使用逐字串(主要是SQL语句)的多行string:
string s = string.Format(@"Result... Adding ""{0}"" and {1} to foobar: {2}", x, this.Y(), x.GetLog());
将这些恢复为常规string似乎很麻烦:
string s = "Result...\r\n" + $"Adding \"{x}\" and {this.Y()} to foobar:\r\n" + x.GetLog().ToString();
我如何同时使用逐字string和插入string?
您可以将$
和@
前缀应用于同一个string:
string s = $@"Result... Adding ""{x}"" and {this.Y()} to foobar: {x.GetLog()}";