练习 - 使用字符串内插合并字符串
虽然字符串串联简单方便,但在需要将许多文本字符串和变量合并成带格式的单个消息的情况下,字符串内插越来越受欢迎。
什么是字符串内插?
字符串内插通过使用“模板”和一个/多个内插表达式将多个值合并为单个文本字符串。 内插表达式由一个左大括号和一个右大括号符号 { }
指示。 可将任何返回值的 C# 表达式置于大括号内。 当文本字符串以 $
字符为前缀时,该字符串将变为模板。
换句话说,不是编写以下代码行:
string message = greeting + " " + firstName + "!";
而是可以将此代码行编写得更简洁:
string message = $"{greeting} {firstName}!";
在这个简单的示例中,你省去了几个按键。 你可以想象,在更复杂的操作中,字符串内插会简洁得多。 此外,很多人发现字符串内插语法更简洁、更易于阅读。
在下面的练习中,你将使用字符串内插重写上述消息。
使用字符串内插将文本字符串和变量值合并在一起
若要将两个字符串内插在一起,请创建一个文本字符串,并在字符串前面加上 $
符号。 文本字符串应包含至少一组大括号 {}
,且你会在这些字符内使用变量的名称。
选择 .NET 编辑器中的所有代码,请按 Delete 键或 Backspace 键删除它。
在 .NET 编辑器中输入以下代码:
string firstName = "Bob"; string message = $"Hello {firstName}!"; Console.WriteLine(message);
现在,运行代码。 你将在输出控制台中看到以下结果:
Hello Bob!
将字符串内插与多个变量和文本字符串一起使用
你可以在同一行代码中执行多个内插操作。
将之前编写的代码修改成以下代码:
int version = 11; string updateText = "Update to Windows"; string message = $"{updateText} {version}"; Console.WriteLine(message);
现在,运行代码。 你将在输出控制台中看到以下结果:
Update to Windows 11
避免中间变量
正如在上一个练习中操作的那样,你可以消除用来存储消息的临时变量。
将之前编写的代码修改成以下代码:
int version = 11; string updateText = "Update to Windows"; Console.WriteLine($"{updateText} {version}!");
现在,运行代码。 即使简化了代码,输出控制台中的结果也应该相同:
Update to Windows 11!
合并逐字文本和字符串内插
假设你需要在模板中使用逐字文本。 可以同时使用逐字文本前缀符号 @
和字符串内插 $
符号。
删除上述步骤中的代码,然后在 .NET 编辑器中键入以下代码:
string projectName = "First-Project"; Console.WriteLine($@"C:\Output\{projectName}\Data");
现在运行代码,你应会看到以下结果。
C:\Output\First-Project\Data
在此示例中,
$
符号允许引用括号内的projectName
变量,而@
符号允许使用未转义的\
字符。
概括
下面是到目前为止你了解到的有关字符串内插的内容:
- 字符串内插可减少某些情况下所需的字符数,与字符串串联相比实现了改进。
- 通过合并每个字符串的符号并将其用作字符串模板的前缀,可以合并字符串内插和逐字文本。