一个实现 IFormattable 接口的例子
2012-04-29 01:37
260 查看
摘自 《Professional C# 4 and .NET 4》
class Program { static void Main() { 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,20: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() + " ||"; 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(); } } public double Norm() { return x * x + y * y + z * z; } }
相关文章推荐
- 今天的问题:一个简单的例子,请帮我解开“接口实现Java‘隐藏实现细目’”的迷惑。
- 一个Go语言接口和多操作系统实现的简单例子
- 『C/C++』一个用C/C++分别实现接口与实现相分离的设计原则的例子
- 一个Go语言接口和多操作系统实现的简单例子
- c#打包文件解压缩 C#中使用委托、接口、匿名方法、泛型委托实现加减乘除算法 一个简单例子理解C#的协变和逆变 对于过长字符串的大小比对
- 一个简单的jQuery插件ajaxfileupload实现ajax上传文件例子
- 自定义控件——一个topbar的实现(顺便学习接口的回调)
- C#嵌入x86汇编——一个GPIO接口的实现
- (1)定义一个接口Compute含有一个方法int computer(int n,int m); (2)设计四个类分别实现此接口,完成+-*/运算 (3)设计一个类UseCompute,含有方法: public void useCom(Compute com, int one, int two) (4)设计一个测试类
- Spring 一个接口多个实现注入
- 一个通用的DAO接口及其Hibernate3实现
- 一个JDBC实现批量删除的例子
- 【Java】【反射】 使用反射方式去实现一个接口
- java为数据结构中的映射定义了一个接口java.util.Map;它有四个实现类HashMap Hashtable LinkedHashMap 和TreeMap.
- java复制文件的一个小例子(实现根据图片上的内容给图片重命名)
- Aidl实现的一个例子
- 一个简单的例子,实现UILabel阴影效果
- 使用Hibernate来实现持久对象 (Hibernate的一个例子)
- java减少数据访问层代码—反射3—数据访问层就一个接口一个实现