自定义类型转换是写在被转换的类中码?
比如把狗转化成猫咪
是应该写在狗过的类中吗?
比如把狗转化成猫咪
是应该写在狗过的类中吗?
2017-03-11
对的。
若在类Dog.cs中写下
public static implicit operator Cat(Dog dog) { return new Cat(dog._name); }
则在static void Main(string[] args)中可用
Dog d1 = new Dog("Tom"); Cat c1 = d1;
实现狗到猫的隐式类型转换。
若在类Cat.cs中写下
public static explicit operator Dog(Cat cat) { return new Dog(cat._name); }
则在static void Main(string[] args)中可用
Cat c2 = new Cat("Bob"); Dog d2 = (Dog)c2;
实现猫到狗的显示转换。
举报