Код последующих не компилируется:Cast MyClass <T> к MyClass <dynamic>
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
?
Если 'MyClass' фактически не использовать общий параметр, то * удалить общий параметр *. – Servy
Это сжатый пример ... очевидно. – AbleArcher
Я мог ошибаться, но я считаю, что генерики требуют определенных типов и не могут быть динамическими или, скорее, двусмысленными. – Edward