using System; namespace ConsoleApplication1 { //神仙类 class Immortal { public string name; //构造函数 public Immortal(string name) { this.name = name; } //implicit:表示隐式转换,如从 B -> A 只需直接赋值(A = B) //此处将Immortal对象隐式转换为Monster对象 public static implicit operator Monster(Immortal value) { return new Monster(value.name + ",变妖怪!"); } } //妖怪类 class Monster { public string name; //构造函数 public Monster(string name) { this.name = name; } //explicti:表示显式转换,如从 A -> B 必须进行强制类型转换(B = (B)A) //此处将Monster对象显示转换为Immortal对象 public static explicit operator Immortal(Monster value) { return new Immortal(value.name + ",变神仙!"); } } class Program { //程序入口 static void Main(string[] args) { //创建神仙实例 Immortal tmpImmortal = new Immortal("神仙"); //隐式转换:神仙变妖怪 Monster tmpObj1 = tmpImmortal; Console.WriteLine(tmpObj1.name); //输出:神仙,变妖怪 //创建妖怪实例 Monster tmpMonster = new Monster("妖怪"); //显示转换:妖怪变神仙 Immortal tmpObj2 = (Immortal)tmpMonster; Console.WriteLine(tmpObj2.name); //输出:妖怪,变神仙 Console.ReadLine(); } } }