以下代码无法编译:
public class Test
{
public void Run()
{
List<MyClass<dynamic>> listOfMyClasses = new List<MyClass<dynamic>>();
MyClass<dynamic> myClass = new MyClass<int>(); // Error here
listOfMyClasses.Add(myClass);
}
public class MyClass<T>
{
public void DoSomething() { }
public void DoSomethingSpecial<T>(T t) { }
}
}
但是,我认为这在逻辑上是有道理的(如果我弄错了,请告诉我)。据推测它很有用,因为我可以在不知道类型参数的情况下调用DoSomething
。如何在列表中添加myClass
?
答案 0 :(得分:1)
不使用MyClass<dynamic>
列表,只需使用dynamic
列表:
public void Run()
{
List<dynamic> listOfMyClasses = new List<dynamic>();
dynamic myClass = new MyClass<int>();
listOfMyClasses.Add(myClass);
}
public class MyClass<T>
{
public void DoSomething() { }
}