c# - 字符串插值

c# - string interpolation

我是 C# 的初学者。到目前为止,我遇到了几种可用于将变量嵌入字符串值的方法。其中之一是在 C# 6.0 中引入的字符串插值。以下代码是字符串插值的示例。

int number = 5;
string myString = $"The number is {number}";

我想知道的是,与以下格式化字符串的方法相比,使用字符串插值是否有好处。

// first way
int number = 5;
string myString = "The number is " + number;

//second way
int number = 5;
string myString = string.Format("The number is {0}", number);

您展示的第一种方法将在内存中创建多个字符串。从记忆中我认为它创建了 number.ToString() 字符串,文字 "The number is " 字符串,然后是名称为 myString

的字符串

对于您展示的第二种方式,它非常简单:字符串插值编译为您使用的 string.Format() 方法调用。

编辑:第二种方式和插值也将支持格式说明符。

Jon Skeet can be found here: http://freecontent.manning.com/interpolated-string-literals-in-c/

的更详细讨论