.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());