class Program { static void Main(string[] args) { Adaptee ada = new Adaptee(); Target tar = ada; } } public class Adaptee { public int code = 1; } public class Target { private int data; public Target(int data) { this.data = data; }
//可以进行隐式转换 public static implicit operator Target (Adaptee ada) { return new Target(ada.code); } }
显式转换
class Program { static void Main(string[] args) { Adaptee ada = new Adaptee(); Target tar = (Target)ada; } } public class Adaptee { public int code = 1; } public class Target { private int data; public Target(int data) { this.data = data; }
//必须显示转换 public static explicit operator Target (Adaptee ada) { return new Target(ada.code); } }