public class Animal
{
}
public class Cat : Animal
{
}
public class AnimalBag<T> where T : Animal
{
}
...
AnimalBag<Animal> bag = new AnimalBag<Cat>();
我收到此错误:
无法将类型隐式转换
AnimalBag<Cat>
为“AnimalBag”
如果我尝试这个:
AnimalBag<Animal> bag = (AnimalBag<Animal>) new AnimalBag<Cat>();
无法将类型转换
AnimalBag<Cat>
为AnimalBag<Animal>
。
如何在 C# 中解决此类问题?这在 Java 中完美运行。