class Program { static void Main(string[] args) { /* * 不管是显示还是隐式转换,一种类型都只能出现一次 */ Console.WriteLine("************************隐式转换************************"); Parent p = new Parent("wjire", 123); string name = p; int id = p; Console.WriteLine(name);//wjire Console.WriteLine(id);//123 Console.WriteLine("************************显示转换************************"); double d = (double)p; Parent pp = (Parent)999; Console.WriteLine(d);//135.3 Console.WriteLine(pp.Id + ":" + pp.Name);//999:refuge Console.ReadKey(); } } class Parent { public string Name { get; set; } public int Id { get; set; } public Parent(string name, int id) { this.Name = name; this.Id = id; } public static implicit operator string(Parent p) { return p.Name; } public static implicit operator int(Parent p) { return p.Id; } public static explicit operator Parent(int id) { return new Parent("refuge", id); } public static explicit operator double(Parent p) { return p.Id * 1.1; } }