正文

实现IFormattable接口的例子2010-09-08 20:26:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/akey307/51753.html

分享到:

参见C#高级编程(第4版)第8章 字符串和正则表达式         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);         }     }       class Vector : IFormattable     {         private double x, y, z;           public Vector(double x, double y, double z)         {             this.x = x;             this.y = y;             this.z = z;         }           public override string ToString()         {             return "(" + x + ", " + y + ", " + z + ")";         }             #region IFormattable Members           public string ToString(string format, IFormatProvider formatProvider)         {             if (format == null)             {                 return ToString();             }               string formatUpper = format.ToUpper();             switch (formatUpper)             {                 case "VE":                     return string.Format("({0:E},{1:E},{2:E})", x, y, z);                 case "IJK":                     StringBuilder sb = new StringBuilder(x.ToString(), 30);                     sb.Append(" i + ");                     sb.Append(y.ToString());                     sb.Append(" j + ");                     sb.Append(z.ToString());                     sb.Append(" k");                     return sb.ToString();                 default:                     return ToString();             }         }           #endregion     }   输出结果如下   In IJK format, v1 is               1 i + 32 j + 5 k v2 is      845.4 i + 54.3 j + -7.8 k   In default format, v1 is                     (1, 32, 5) v2 is            (845.4, 54.3, -7.8)   In VE format, v1 is (1.000000E+000,3.200000E+001,5.000000E+000) v2 is (8.454000E+002,5.430000E+001,-7.800000E+000)  

阅读(1644) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册