11
private static void GetData()
{
   dynamic dynamicList =FetchData();
   FilterAndSortDataList(dynamicList);
}

private static void FilterAndSortDataList<T>(List<T> dataList)
{
    ...
}

FilterAndSortDataList を呼び出すと、ランタイム バインディング エラーが発生します。実行時に dynamicList をキャストする方法はありList<T>ますか?

FetchData() はプラグインによって実装されているため、型 T が何であるかは事前にわかりません。

4

2 に答える 2

0

実行時に dynamicList を List にキャストする方法はありますか

である必要があるときに、なぜ動的として宣言するのかわかりませんが、何がList<T>何であるかがわからないためだと思いますT。した場合、直接キャストできます。

private static void GetData()
{
   dynamic dynamicList = new List<string> ();
   FilterAndSortDataList((List<string>)dynamicList);
}

private static void FilterAndSortDataList<T>(List<T> dataList)
{
    ...
}

しかし、明らかにそれは実行時に失敗する可能性があります。

別のオプションGetDataとして、ジェネリックにすることもできます。

private static void GetData<T>()
{
   List<T> list = new List<T>();
   FilterAndSortDataList(list);
}

private static void FilterAndSortDataList<T>(List<T> dataList)
{
    ...
}
于 2013-08-09T16:09:41.390 に答える