0

私はこれをやろうとしています:

public static BatchInfo CreateBatch(IEnumerable<IEnumerable<T>> rows)
{

または:

public static BatchInfo CreateBatch(IEnumerable<IEnumerable<var>> rows)
{

どちらもエラーになります。以前、私はこれを持っていました:

public static BatchInfo CreateBatch(IEnumerable<IEnumerable<string>> rows)
{

大丈夫でした。ただし、文字列、日付、int などを使用するためrows<string>toを変更する必要があり<var>ます。当初は、文字列のみを使用するつもりでした...

アドバイスありがとうございます。

4

3 に答える 3

4
public static BatchInfo CreateBatch<T>(IEnumerable<IEnumerable<T>> rows)
{

については正しい考えを持っていたと思いますがIEnumerable<IEnumerable<T>>、メソッド宣言もジェネリックにする必要があります。

于 2013-08-23T17:31:32.873 に答える
1

varタイプではありません。に使用されるキーワードでありimplicit typing、変数を宣言するときに冗長性を減らすためにのみ使用されます。これは型ではないため、ジェネリック パラメータとして使用できないことを意味します。

あなたが探しているのは、objectまたはdynamic(.NET 4+のみ)のいずれかだと思います

public static BatchInfo CreateBatch(IEnumerable<IEnumerable<object>> rows)
public static BatchInfo CreateBatch(IEnumerable<IEnumerable<dynamic>> rows)

これらは両方ともあなたが望むことをするかもしれませんが、醜く、おそらく多くの問題を引き起こすでしょう. おそらくタイプごとに異なるメソッドを作成することをお勧めしますが、何をしようとしているのか完全にはわかりません。

ジェネリック メソッド パラメーターも機能する場合があります

public static BatchInfo CreateBatch<T>(IEnumerable<IEnumerable<T>> rows)
于 2013-08-23T17:30:54.637 に答える
1
public static BatchInfo CreateBatch(IEnumerable<IEnumerable<object>> rows)
{
于 2013-08-23T17:28:29.780 に答える