C#面试题更新 2026-08-05

在 C# 中,String.Format 方法与字符串插值这两种字符串格式化方式有哪些不同?请从语法、可读性、性能和格式化支持等角度进行对比。

技术原理方案权衡C#

考察说明

考查候选人对 C# 字符串格式化两种方式的深入理解,包括语法差异、性能表现和适用场景。

回答思路

  1. 【回答框架 1】语法层面:String.Format 使用占位符如 {0},需要额外传递参数列表;字符串插值直接在字符串中嵌入表达式,如 $“value {variable}”,更直观。
  2. 【回答框架 2】可读性:字符串插值在表达式简单时更清晰,但复杂表达式会使字符串难以阅读;String.Format 将格式与参数分离,适合复杂格式或需要本地化的场景。
  3. 【回答框架 3】性能:字符串插值在编译时可能转换为 String.Format 或直接构建,但两者最终都会生成字符串,性能差异在现代 .NET 中几乎可忽略;高循环场景应使用 StringBuilder。
  4. 【回答框架 4】格式化支持:两者都支持相同的格式说明符,如日期、数字等;插值内还可以调用方法,但需注意表达式求值时机。
  5. 【关键点 1】字符串插值是语法糖,本质类似 String.Format。
  6. 【关键点 2】插值在简短格式下更易读,String.Format 适合本地化和复杂格式。
  7. 【关键点 3】性能差异很小,除非大量拼接,否则优先考虑可读性。
  8. 【易错点 1】不要认为插值永远比 String.Format 快,性能差距微乎其微。
  9. 【易错点 2】在循环中频繁格式化字符串,应避免使用插值或 Format,改用 StringBuilder。