2016-06-28 11 views
-1

コンパイル時に型を知らずにインスタンスを作成しなければならない状況にあります。コンパイル時に型を知らずにIEnumerable []を作成する

私のコードは、このliketある:

 IEnumerable[] columns = new IEnumerable[5]; 

    columns[0] = new string[]{}; 

iは(上記の例では、文字列である)のタイプを知らなくても[0] columsを作成することができなければなりません。

私の問題の解決策を見つけることができませんでしたが、どんな提案も歓迎されます。

ありがとうございます。

+2

は、ジェネリック型を調べます。 – user12345

+0

すべてのクラスの親である 'System.Object'を使わないのはなぜですか? –

+0

@ChristophKnそれと 'ダイナミック'は、ロケット発射装置を使ってハエを殺すようなものです。あなたは良いよりも多くのダメージを与えるだろう。すでに言及したように、ジェネリックスは道のりです。 – krillgar

答えて

0

次のようなジェネリックを使用することができます。

class MyBusiness<T> where T: new() 
{ 
    public List<T> coll { get; set; } 

    public MyBusiness(){ 
     coll = new List<T>(); 
    } 

    public void DoSth(){ 
     T t = new T(); 
     coll.Add(t); 
    } 
} 
0

あなたはGenericsに見てみたいと思うでしょう。これらのクラスを使用すると、タイプを使用するまでタイプを知る必要がないクラスを作成できます。

public class Column<T> 
{ 
    public T Item { get; set; } 
} 

だから、あなたがそうのようなプログラムでそれを使用したい:

var columns = new IEnumerable<Column<string>>(); 
関連する問題