日期:2014-05-17  浏览次数:21293 次

泛型数组参数怎么转换?
static void TTest<T>(T t)
        {
        }


如代码参数 t 是可以传递 int[] 等数组的,但是在方法内没有办法通过 t[0] 取得原值,请问用什么办法可以将参数 t 转换为数组?

如果不能转换为数组的话,那有什么办法让传递数组参数时编译器报错? 谢谢!!

------解决方案--------------------
void TTest<T>(T[] array)
------解决方案--------------------
如果你想写一个所谓的“万能的”方法,你就可能是个标题党。你写不出来什么代码,至少我们认可的你写不出来,只会猜想。

如果你想写一个巨大的方法,它可以做1000种不同的工作,这与分别写1000个不同的方法单独调用相比,哪一个更可取?

你可以多看一些类似于List<T>.Sort()之类的代码,了解对于这类数据集合的处理的设计。但是你自己不要空想什么方法,你表达不出有意义的需求来。建议你先从一个一个具体的方法写起。

如果你写出4个方法,然后你能说明“有必要用一个泛型方法来代替这四个不同的方法”,当你能够举出实例,当你能够轻松举例各种具体的实现然后再来谈论抽象(而不是相反),那个时候再提出你的想法。