c# 字符串内插

什么是字符串内插?

字符串内插通过使用“模板”和一个/多个内插表达式将多个值合并为单个文本字符串。 内插表达式是一个变量,由一个左大括号和一个右大括号符号 { } 括起来。 当文本字符串以 $ 字符为前缀时,该字符串将变为模板。

换句话说,不是编写以下代码行:

string message = greeting + " " + firstName + "!";

而是可以将此代码行编写得更简洁:

string message = $"{greeting} {firstName}!";

在这个简单的示例中,你省去了几个按键。 你可以想象,在更复杂的操作中,字符串内插会简洁得多。 此外,很多人发现字符串内插语法更简洁、更易于阅读。

string firstName = "Bob";
string message = $"Hello {firstName}!";
Console.WriteLine(message);

// Hello Bob!

避免中间变量。
正如在上一个练习中操作的那样,我们可以消除用来存储消息的临时变量。

string firstName = "Bob";
string greeting = "Hello";
Console.WriteLine($"{greeting} {firstName}!");

合并逐字文本和字符串内插

假设你需要在模板中使用逐字文本。 可以同时使用逐字文本前缀符号 @ 和字符串内插 $ 符号。

// $@顺序不能调换
string projectName = "First-Project";
Console.WriteLine($@"C:\Output\{projectName}\Data");
// C:\Output\First-Project\Data

回顾

应在本练习中学到的主要理念:

  • 字符串内插可减少某些情况下所需的字符数,与字符串串联相比实现了改进。
  • 通过合并每个字符串的符号并将其用作字符串模板的前缀,可以合并字符串内插和逐字文本。

练习

// 输出
View English output:
        c:\Exercise\ACME\data.txt

Посмотреть русский вывод:
        c:\Exercise\ACME\ru-RU\data.txt

方式1

string projectName = "ACME";

string russianMessage = "\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0440\u0443\u0441\u0441\u043a\u0438\u0439 \u0432\u044b\u0432\u043e\u0434";

Console.WriteLine($@"View English output:
        c:\Exercise\{projectName}\data.txt");

Console.WriteLine($@"{russianMessage}:
        c:\Exercise\{projectName}\ru-RU\data.txt");

方式2

string projectName = "ACME";
string englishLocation = $@"c:\Exercise\{projectName}\data.txt";
Console.WriteLine($"View English output:\n\t\t{englishLocation}\n");
            
string russianMessage = "\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0440\u0443\u0441\u0441\u043a\u0438\u0439 \u0432\u044b\u0432\u043e\u0434";
string russianLocation = $@"c:\Exercise\{projectName}\ru-RU\data.txt";
Console.WriteLine($"{russianMessage}:\n\t\t{russianLocation}\n");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值