我的目标是 .Net 框架的 4.0 版。我写了以下简单的代码:
public class A
{
public A()
{
}
}
public class B
{
public B()
{
}
public static implicit operator A(B b)
{
return new A();
}
}
然后我创建了一个通用列表:
var mylist = typeof(List<>).MakeGenericType(typeof(A)).GetConstructor(Type.EmptyTypes).Invoke(new object[]{});
B
当我想添加以下代码的新实例时:
((IList<A>)mylist).Add(new B());
但是,如果我运行以下代码,则会引发以下异常:
The value "B" is not of type "A" and cannot be used in this generic collection.
参数名称:值
((IList)mylist).Add(new B());