String Format

class Program
    {
        static void Main(string[] args)
        {
            Vector v1 = new Vector(1, 32, 5);
            Vector v2 = new Vector(845.4,54.3,-7.8);
            Console.WriteLine("\nIn IJK format,\nv1 is {0,30:IJK}\nv2 is {1,30:IJK}", v1, v2);
            Console.WriteLine("\nIn default format,\nv1 is {0,30}\nv2 is {1,30}", v1, v2);
            Console.WriteLine("\nIn VE format,\nv1 is {0,30:VE}\nv2 is {1,30:VE}", v1, v2);
            Console.WriteLine("\nNorms are:\nv1 is {0,20:N}\nv2 is {1,30:N}", v1, v2);

            Console.ReadKey();
        }
    }

    struct Vector : IFormattable
    {
        public double x, y, z;

        public Vector(double x, double y, double z)
        {
            this.x = x;
            this.y = y;
            this.z = z;
        }

        public string ToString(String format, IFormatProvider formatProvider)
        {
            if (format == null)
            {
                return ToString();
            }

            string formatUpper = format.ToUpper();
            switch (formatUpper)
            {
                case "N":
                    return "|| " + Norm().ToString() + " ||";
                case "VE":
                    return String.Format("( {0:E}, {1:E}, {2:E} )",x,y,z);
                case "IJK":
                    StringBuilder sb = new StringBuilder(x.ToString(), 30);
                    sb.AppendFormat(" i + ");
                    sb.AppendFormat(y.ToString());
                    sb.AppendFormat(" j + ");
                    sb.AppendFormat(z.ToString());
                    sb.AppendFormat(" k");
                    return sb.ToString();
                default:
                    return ToString();
            }
        }

        public override string ToString()
        {
            return "( " + x + ", " + y + ", " + z + " )";
        }

        public double Norm()
        {
            return x * x + y * y + z * z;
        }
    }

{0,30:IJK}中IJK会当成参数传给ToString中的format。这已经验证过,可是为什么不可以写成 {0,:IJK}这样?
格式不是这样吗?{index[,alignment][:formatString]} 。
😚😚😚

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容