练习 - 使用字符串内插合并字符串
虽然字符串串联简单方便,但在需要将许多文本字符串和变量组合成单个格式化消息的情况下, 字符串内插 在流行度不断增加。
什么是字符串内插?
字符串内插通过使用“模板”和一个或多个 内插表达式将多个值合并到单个文本字符串中。
内插表达式由左大括号符号和右大括号符号{ }
指示。 可以将返回值的任何 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
大括号内的变量,而符号@
允许使用未转义\
字符。
回顾
下面介绍了到目前为止已了解的字符串内插:
- 字符串内插通过减少在某些情况下所需的字符数,改进了字符串串联。
- 可以通过组合每个字符串的符号并将其用作字符串模板的前缀来组合字符串内插和逐字文本。