C#(.Net 2.0)の反射型から汎用オブジェクトを作成することはできますか?C#は反映されたタイプのリストをインスタンス化します
void foobar(Type t){
IList<t> newList = new List<t>(); //this doesn't work
//...
}
タイプtは、実行時まで知られていません。 instance
をどうするか今
void foobar(Type t)
{
var listType = typeof(List<>);
var constructedListType = listType.MakeGenericType(t);
var instance = Activator.CreateInstance(constructedListType);
}
:
コンパイル時のタイプがわからないリストではどうしますか? – dtb
'foobar(){IList newList = new List ();のようにこれを汎用関数として書くことができますか? } ' –
Juliet
私はこれが悪い方法で大きな問題に取り組んだ結果、これがコードの匂いになるかもしれないと感じました。 –