[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
索引(从零开始)必须大于或等于零,且小于参数列表的大小。
输入字符串的格式不正确。
posted @ 2012-05-03 14:25  安布雷拉  阅读(824)  评论(0编辑  收藏  举报