我一直在寻找为什么这个通用构造不能编译
我得到:
无法将类型“WpfApplication1.CowDao”隐式转换为“WpfApplication1.Dao”
public abstract class Animal { }
public class Dog : Animal { }
public class Cow : Animal { }
public abstract class Dao<T> where T : Animal
{
public void Insert(T t);
}
public class DogDao : Dao<Dog> { }
public class CowDao : Dao<Cow> { }
public class Main
{
public Main()
{
Dao<Animal> dao = null;
if (true) dao = new DogDao();
else dao = new CowDao();
}
}
我只是想达到我的目标->制作一个“中立”实例
我认为我的结构必须改变,但我不知道如何
我正在使用 .NET Framework 4
谢谢