//A类 class Cls1 { public string name; //构造函数 public Cls1(string name) { this.name = name; } //implicit:表示隐式转换,如从 B -> A 只需直接赋值(A = B) //此处将:A对象隐式转换为B对象 public static implicit operator Cls2(Cls1 value) { return new Cls2(value.name + " 变 B"); } } //妖怪类 class Cls2 { public string name; //构造函数 public Cls2(string name) { this.name = name; } //explicti:表示显式转换,如从 A -> B 必须进行强制类型转换(B = (B)A) //此处将:B对象显示转换为A对象 public static explicit operator Cls1(Cls2 value) { return new Cls1(value.name + " 变 A"); } } class Program { //程序入口 static void Main(string[] args) { //隐式转换:A变B Cls2 cls2 = new Cls1("A"); Console.WriteLine(cls2.name); //输出:A,变B //显示转换:B变A Cls1 cls1 = (Cls1)new Cls2("B"); Console.WriteLine(cls1.name); //输出:B,变A Console.ReadLine(); } }