Backporting C#插值字符串运算符$

Sha*_*ler 2 c# string c#-4.0 c#-6.0

我有一些代码我想在旧版本的c#中重用

List<string> programId = new List<string>(){"1","2","3"}
string.Join(",", Id.Select(x => $"'{x}'"))
Run Code Online (Sandbox Code Playgroud)

如何将$运算符转换为旧版本的C#?

Rob*_*vey 9

$"'{x}'"
Run Code Online (Sandbox Code Playgroud)

翻译成

string.Format("'{0}'", x)
Run Code Online (Sandbox Code Playgroud)

在旧版本的C#中.

实际上,String Interpolation版本只是编译器语法糖.如果您反编译生成的程序集,您将发现它全部解析为string.Format调用.

  • 它可以.在我目前的工作中,我们使用的是CSScript,它不进行字符串插值,所以我总是忽略了Resharper转换为字符串插值的有用建议. (2认同)