字符串插值通过$符号嵌入变量与表达式,提升日志可读性。1. 基本用法:{variable}自动转换类型;2. 格式化:{:格式符}规范日期、数字输出;3. 复杂表达式:支持方法调用与三元运算;4. 转义:{{}}输出 literal 大括号。

在 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 .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 或结构化文本的格式问题。
基本上就这些,字符串插值让日志代码更清晰,也减少了参数顺序错乱的风险。










