小编use*_*378的帖子

如何强迫对仿制品进行贬低

鉴于以下代码:

class Animal
{ }

class Dog : Animal
{ }

class Cage<T>
{
    private T animal;

    public Cage(T animal)
    {
        this.animal = animal;
    }

    public T Animal
    { 
        get { return animal;} 
    }
}

class Program
{
    static void Main(string[] args)
    {
        Dog dog = new Dog();
        Cage<Animal> animalCage = new Cage<Animal>(dog);
        Cage<Dog> dogCage = (Cage<Dog>)animalCage;
    }
}
Run Code Online (Sandbox Code Playgroud)

如何解决最后一个编译器错误(从animalCage转换为dogCage)?

在我的代码中我知道笼子里有一只狗,但是我找不到一种方法来施放它.我是创建转换器并从Cage <Animal>的值创建新的Cage <Dog>实例的唯一替代方法吗?

c# generics downcast

5
推荐指数
1
解决办法
2362
查看次数

标签 统计

c# ×1

downcast ×1

generics ×1