可能重复:
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>
{
}
}
答案 0 :(得分:0)
答案 1 :(得分:-5)
String,Int32等是Struct类型,而object,Person等是C#的类对象。 因此,在创建泛型时,如果计划使用强制转换要素,则必须指定约束。 所以,你可以使用
public void Method<T>() where T : class
or
public void Method<T>() where T : struct