跳到主要内容

C# 字符串插值

在 C# 编程中,字符串插值是一种强大的功能,它允许你将表达式直接嵌入到字符串中,从而简化字符串的构建过程。与传统的字符串拼接或格式化方法相比,字符串插值使代码更简洁、更易读。

什么是字符串插值?

字符串插值是 C# 6.0 引入的一项功能,它允许你在字符串中直接嵌入表达式。通过在字符串前添加 $ 符号,并使用大括号 {} 包裹表达式,你可以将表达式的值动态插入到字符串中。

基本语法

csharp
string name = "Alice";
int age = 25;
string message = $"My name is {name} and I am {age} years old.";
Console.WriteLine(message);

输出:

My name is Alice and I am 25 years old.

在上面的示例中,{name}{age} 是嵌入的表达式,它们的值会被动态插入到字符串中。

字符串插值的优势

  1. 简洁性:与传统的字符串拼接或 String.Format 方法相比,字符串插值使代码更简洁。
  2. 可读性:直接在字符串中嵌入表达式,使代码更易读和维护。
  3. 性能:字符串插值在编译时会转换为 String.Format 调用,因此性能与 String.Format 相当。
提示

字符串插值不仅适用于简单的变量,还可以嵌入复杂的表达式,如方法调用、算术运算等。

实际应用场景

1. 动态生成消息

假设你正在开发一个用户管理系统,需要根据用户的信息动态生成欢迎消息:

csharp
string userName = "Bob";
int loginCount = 10;
string welcomeMessage = $"Welcome back, {userName}! You have logged in {loginCount} times.";
Console.WriteLine(welcomeMessage);

输出:

Welcome back, Bob! You have logged in 10 times.

2. 格式化数字

你可以使用字符串插值来格式化数字,例如显示货币或百分比:

csharp
double price = 19.99;
double discount = 0.15;
string priceMessage = $"The original price is {price:C}, but with a {discount:P} discount, it's now {price * (1 - discount):C}.";
Console.WriteLine(priceMessage);

输出:

The original price is $19.99, but with a 15.00% discount, it's now $16.99.
备注

在字符串插值中,{price:C} 表示将 price 格式化为货币,{discount:P} 表示将 discount 格式化为百分比。

3. 多行字符串插值

C# 还支持多行字符串插值,这在生成复杂文本时非常有用:

csharp
string product = "Laptop";
double price = 1200.50;
string description = $@"
Product: {product}
Price: {price:C}
Description: A high-performance {product} with the latest features.
";
Console.WriteLine(description);

输出:

Product: Laptop
Price: $1,200.50
Description: A high-performance Laptop with the latest features.
警告

在使用多行字符串插值时,确保在字符串前添加 $@ 符号,以同时启用字符串插值和多行字符串功能。

总结

C# 字符串插值是一种强大且灵活的功能,它使字符串的构建过程更加简洁和直观。通过嵌入表达式,你可以轻松地生成动态内容,而无需复杂的字符串拼接或格式化操作。

附加资源

练习

  1. 编写一个程序,使用字符串插值生成一个包含用户姓名、年龄和出生日期的欢迎消息。
  2. 尝试在字符串插值中嵌入一个方法调用,例如计算两个数的和并将其插入到字符串中。

通过练习,你将更好地掌握字符串插值的用法,并能够在实际项目中灵活运用。