问答详情
源自:4-2 自定义转换

自定义类型转换是写在被转换的类中码?

比如把狗转化成猫咪

是应该写在狗过的类中吗?

提问者:零零拾 2017-03-11 12:26

个回答

  • zjuPeco
    2017-03-11 12:48:15
    已采纳

    对的。

    若在类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;

    实现猫到狗的显示转换。