完全没定义Base这个类啊?
List<Base<T>> list = new List<Base<T>>();
base带上T
如果你是想 一个list里面存Derived1跟Derived2的话 就定义个接口吧
class Base<T>:IXXX{}
List<IXXX> list = new List<IXXX>();
static void Main(string[] args)
{
List<Base<int>> list = new List<Base<int>>();
}
Base<int>才能算作是一个类型。List<>尖括号里必须要一个明确的类型
List<Base<int>> list = new List<Base<int>>();
C#的泛型与C++比是确实了弱很多的,但是最主要一点C#的泛型都是类型安全的。所以这个应该说是他的优点吧!C# 泛型类型替换是在运行时执行的,从而为实例化的对象保留了泛型类型信息。
所以你上面的代码在实例化时需要明确的指定实例化的类型。
如List<Base<int>> list=new List<Base<int>>();
没有定义Base,你只定义了Base<T>