函数在c#中取任意类型的数组

Mar*_*tin 4 c# arrays types object

我已经创建了一个处理对象数组的函数process(Object []).它适用于任何类型,包括整数和浮点数,只要您先将每个元素打包.我希望这个函数能够获取未装箱的元素,如果只是在处理之前自己装箱.我怎么做?

我可以用一些函数来包装,比如process(int [])和process(float []),但这似乎也很麻烦.我已尝试过程(ValueType [])但编译器仍然选择进程(Object []).

我有C#2.0,但如果有一个很好的3.0解决方案我想看到它.

Jon*_*eet 6

处理如何工作?最明显的方法签名是:

void ProcessArray<T>(T[] data)
Run Code Online (Sandbox Code Playgroud)

这实际上是"一个任意类型的数组" - 尽管调用者需要在编译时知道该类型.

但是,根据你使用元素的方式,你可能仍然会拳击.也许这没关系,因为你的问题的一部分说:"如果只是在处理之前自己装箱".如果你对此感到高兴,很棒:)

如果您可以提供有关您正在做的事情的更多详细信息,我们可以提供更多帮助.