我上课的相关部分看起来像
class C {
void Method<T>(SomeClass<T> obj) {
list.Add(obj);
}
List<?> list = new List<?>();
}
Run Code Online (Sandbox Code Playgroud)
我应该如何定义列表以便类编译?
我想要一个类型List<SomeClass<?>>
列表,SomeClass
即每个对象可以具有任何类型参数的对象列表.Java ?
构造允许这样做; 什么是C#等价物?如果不存在这样的事情,是否有合适的解决方法?(A List<object>
会做,但非常难看.)
Dan*_*fer 13
我认为你不能在C#中做到这一点......你必须在类中添加type参数:
class C<T> {
void Method(SomeClass<T> obj) {
list.Add(obj);
}
List<SomeClass<T>> list = new List<SomeClass<T>>();
}
Run Code Online (Sandbox Code Playgroud)
另一种选择是使用接口:
class C {
void Method<T>(T obj)
where T : ISomeClass {
list.Add(obj);
}
List<ISomeClass> list = new List<ISomeClass>();
}
Run Code Online (Sandbox Code Playgroud)