[CSharp]复合格式化(Composite Formatting)
“复合格式化”为我们格式化字符串提供了便利,但是使用的时候还是有需要我们注意的几点:
- 可以忽略占位符
- 允许交换占位索引
- 同一个占位符允许出现多次
- 每个占位符必须对应一个参数,否则会引发 FormatException 异常
- 未定义的占位符,同样会引发 FormatException 异常
测试代码:
using System; namespace SystemExample { class Program { static void Main(string[] args) { // Call Sample Fun Essential_CSharp_Sample_1_6(); // ReadKey #if DEBUG Console.ReadKey(); #endif } /// <summary> /// 复合格式化(composite formatting) /// </summary> static void Essential_CSharp_Sample_1_6() { Console.WriteLine("{0}", "A"); // 忽略占位符 Console.WriteLine("", "A"); Console.WriteLine("{0}{1}", "A", "B"); // 交换占位索引 Console.WriteLine("{1}{0}", "A", "B"); // 同一个占位符出现多次 Console.WriteLine("{0}{0}", "A"); try { // 每个占位符必须对应一个参数,否则会引发 FormatException 异常 Console.WriteLine("{0}{1}", "A"); } catch (FormatException e) { Console.WriteLine(e.Message); } try { // 未定义的占位符,同样会引发 FormatException 异常 Console.WriteLine("{0}{0}{A}", "A"); } catch (FormatException e) { Console.WriteLine(e.Message); } } } }
运行结果:
A
AB
BA
AA
索引(从零开始)必须大于或等于零,且小于参数列表的大小。
输入字符串的格式不正确。