C# 中的字符串插值如何格式化日志消息?

来源:这里教程网 时间:2026-02-21 17:27:00 作者:

在 C# 中,使用字符串插值格式化日志消息既简洁又直观。你只需在字符串前加上

$
符号,然后在大括号
{}
中放入变量或表达式即可。

基本插值用法

直接将变量嵌入字符串中,编译器会自动处理转换。

string user = "Alice";
DateTime loginTime = DateTime.Now;
Console.WriteLine($"User {user} logged in at {loginTime}");

这比传统的

String.Format("User {0} logged in at {1}", user, loginTime)
更易读,尤其当变量较多时不容易出错。

控制日期和数字格式

在大括号内使用冒号

:
可以指定格式化规则,让日志输出更规范。

格式化时间为“年-月-日 时:分”:
{loginTime:yyyy-MM-dd HH:mm}
显示两位小数的浮点数:
double price = 19.5;
{price:F2}
整数补零至6位:
int id = 123;
{id:D6}

例如:

Console.WriteLine($"ID:{id:D6} - User {user} paid ${price:F2} on {loginTime:yyyy-MM-dd}")
输出为
ID:000123 - User Alice paid $19.50 on 2025-09-25

处理复杂表达式与转义

插值支持直接调用方法或执行简单逻辑,适合动态日志内容。

调用方法:
Console.WriteLine($"File size: {GetFileSize():N0} bytes")
条件判断:
Console.WriteLine($"{name} is {(age >= 18 ? "an adult" : "a minor")}")
转义大括号:要输出字面的
{
}
,使用双括号
{{
}}

比如记录错误时:

Log($"Error occurred: {{ Code: {errorCode}, Message: \"{errorMessage}\" }}")
,可避免 JSON 或结构化文本的格式问题。

基本上就这些,字符串插值让日志代码更清晰,也减少了参数顺序错乱的风险。

相关推荐