我希望你是我独家记忆

一段永远封存的记忆,随风而去
posts - 263, comments - 31, trackbacks - 0, articles - 3
   :: 首页 :: 新随笔 ::  :: 聚合  :: 管理

IFormattable

Posted on 2009-07-06 15:57 Hero 阅读(151) 评论(0)  编辑 收藏 引用 所属分类: C#积累
 1 using System;
 2 
 3 class Point : IFormattable
 4 {
 5     public int x, y;
 6 
 7     public Point(int x, int y)
 8     {
 9         this.x = x;
10         this.y = y;
11     }
12 
13     public override String ToString() { return ToString(nullnull); }
14 
15     public String ToString(String format, IFormatProvider fp)
16     {
17         // If no format is passed, display like this: (x, y).
18         if (format == nullreturn String.Format("({0}, {1})", x, y);
19 
20         // For "x" formatting, return just the x value as a string
21         if (format == "x"return x.ToString();
22 
23         // For "y" formatting, return just the y value as a string
24         if (format == "y"return y.ToString();
25 
26         // For any unrecognized format, throw an exception.
27         throw new FormatException(String.Format("Invalid format string: '{0}'.", format));
28     }
29 }
30 
31 
32 public sealed class App
33 {
34     static void Main()
35     {
36         // Create the object.
37         Point p = new Point(598);
38 
39         // Test ToString with no formatting.
40         Console.WriteLine("This is my point: " + p.ToString());
41 
42         // Use custom formatting style "x"
43         Console.WriteLine("The point's x value is {0:x}", p);
44 
45         // Use custom formatting style "y"
46         Console.WriteLine("The point's y value is {0:y}", p);
47 
48         try 
49         {
50             // Use an invalid format; FormatException should be thrown here.
51             Console.WriteLine("Invalid way to format a point: {0:XYZ}", p);
52         }
53         catch (FormatException e)
54         {
55             Console.WriteLine("The last line could not be displayed: {0}", e.Message);
56         }
57     }
58 }
59 
60 // This code produces the following output.
61 // 
62 //  This is my point: (5, 98)
63 //  The point's x value is 5
64 //  The point's y value is 98
65 //  The last line could not be displayed: Invalid format string: 'XYZ'.

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理