可能重複:
polymorphic resolution of generic parameters in Unity registerType鑄造泛型
這可能是顯而易見的。但有人可以告訴我爲什麼這不是有效的代碼?編譯器說它不能將Class1<string>
轉換爲Class1<object>
。 這種方式是否是仿製藥不允許的上傳?如果是這樣,爲什麼不呢?
namespace Test
{
public class Tests
{
public void Test()
{
Class1<object> objectClass1 = new Class1<string>();
}
}
class Class1<T>
{
}
}
這是一個常見問題,尋找協方差。這裏是關於這個主題的一個線程:http://stackoverflow.com/questions/2662369/covariance-and-contravariance-real-world-example – JohnD
另請參見[我對類似問題的回答](http://stackoverflow.com/questions/4269279/polymorphic-resolution-of-generic-parameters-in-unity-registertype/4269376#4269376)解釋爲什麼*這是不允許的。 – cdhowie