-4

パラメータとしてオブジェクトがあり、そのオブジェクト タイプから汎用リストを作成したいと考えています。ほとんどの場合、カスタム オブジェクト タイプを送信したいと考えています。このコードは、私の問題の概念を宣言しています。

public void myMethod(object myObject)
{
    List<typeof(myObject)> _NewList=new List<typeof(myObject)();
}
4

2 に答える 2

0

メソッドをジェネリックにすることができます:

public void myMethod<T>(T myObject)
{
    List<T> _NewList = new List<T>();
}

メソッドがこれらのオブジェクトで一貫したものを実行する必要がある場合は、型をインターフェイスまたは基本クラスに制約できます。

于 2013-03-27T14:32:31.003 に答える
0

リフレクション経由:

var type = myObject.GetType();
var genericListType = typeof(List<>).MakeGenericType(new[] { type });

var list = (IList)Activator.CreateInstance(genericListType);

しかし、ジェネリックを使用する方が良いでしょう。

于 2013-03-27T14:35:25.307 に答える