字符串内插
什么是字符串内插
字符串内插通过使用“模板”和一个/多个内插表达式将多个值合并为单个文本字符串。内插表达式是一个变量,由一个左大括号和一个右大括号符号 { } 括起来。当文本字符串以 $ 字符为前缀时,该字符串将变为模板。
换句话说,不是编写以下代码行:
csharp
string message = greeting + " " + firstName + "!";而是可以将此代码行编写得更简洁:
csharp
string message = $"{greeting} {firstName}!";在这个简单的示例中,你可省去几个按键。你可以想象,在更复杂的操作中,字符串内插会简洁得多。此外,很多人发现字符串内插语法更简洁、更易于阅读。
在下面的练习中,我们将使用字符串内插重写上述消息。
使用字符串内插将文本字符串和变量值合并在一起
若要将两个字符串内插在一起,请创建一个文本字符串,并在字符串前面加上 $ 符号。文本字符串应包含至少一组大括号 {},且你会在这些字符内使用变量的名称。
将以下代码添加到代码窗口中:
运行
csharp
string firstName = "Bob";
string message = $"Hello {firstName}!";
Console.WriteLine(message);
// Hello Bob!将字符串内插与多个变量和文本字符串一起使用
你可以在同一行代码中执行多个内插操作。
csharp
string firstName = "Bob";
string greeting = "Hello";
string message = $"{greeting} {firstName}!";
Console.WriteLine(message);
// Hello Bob!避免中间变量
正如在上一个练习中操作的那样,我们可以消除用来存储消息的临时变量。
csharp
string firstName = "Bob";
string greeting = "Hello";
Console.WriteLine($"{greeting} {firstName}!");
// Hello Bob!合并逐字文本和字符串内插
假设你需要在模板中使用逐字文本。可以同时使用逐字文本前缀符号 @ 和字符串内插 $ 符号。
csharp
string projectName = "First-Project";
Console.WriteLine($@"C:\Output\{projectName}\Data");
// C:\Output\First-Project\Data概括
下面是会在本练习中学到的主要理念:
- 字符串内插可减少某些情况下所需的字符数,与字符串串联相比实现了改进。
- 通过合并每个字符串的符号并将其用作字符串模板的前缀,可以合并字符串内插和逐字文本。