我创建了一个处理对象数组的函数,process(Object[])。它适用于任何类型,包括整数和 float ,只要您先将每个元素装箱即可。我希望该功能也可以采用未装箱的元素,如果只是在处理之前将其装箱的话。我该怎么做?
我可以用一些函数包装起来,比如 process(int[]) 和 process(float[]) 但这似乎也很麻烦。我试过 process(ValueType[]) 但编译器仍然选择 process(Object[])。
我有 C# 2.0,但如果有适用于 3.0 的好的解决方案,我希望看到它。
最佳答案
处理是如何进行的?最明显的方法签名是:
void ProcessArray<T>(T[] data)
字面意思是“任意类型的数组”——尽管调用者需要在编译时知道该类型。
但是,根据您使用这些元素的方式,您可能仍会以装箱结束。也许这没关系,考虑到您的问题部分说:“如果只是在处理之前将其装箱”。如果您对此感到满意,那就太好了 :)
如果您能提供更多有关您正在做的事情的详细信息,我们可能会提供更多帮助。
关于c# - 在c#中获取任意类型数组的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1378023/