我的目標是.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());
什麼是你的問題? –
我該如何解決這個問題? –