原文
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace structType { class Program { static void Main(string[] args) { Date defaultDate = new Date(); // 使用默认构造器 Console.WriteLine("使用结构的默认构造器输出:{0}", defaultDate); // 实际上,输出时调用了重写的 ToString 方法 Console.WriteLine("使用结构的默认构造器输出:{0}", defaultDate.ToString()); // 和上句效果一样,上句省略了 ToString 方法 Date weddingAnniversary = new Date(2010, Month.July, 4); Console.WriteLine("使用自定义的构造器输出:{0}", weddingAnniversary); // 调用了重写的 ToString 方法 } } struct Date { private int year; // 0 无效 private Month month; // 0 为枚举类型中的 January private int day; // 0 无效 public Date(int ccyy, Month mm, int dd) { this.year = ccyy - 1900; this.month = mm; this.day = dd - 1; } public override string ToString() // 重写 ToString 方法 { string data = string.Format("{0} {1} {2}", this.month, this.day + 1, this.year + 1900); return data; } } enum Month // enum 类型 { January, Feburary, March, April, May, June, July, August, September, October, November, December } }
运行后结果如下所示: