在C#里使用泛型,调用一个函数时,怎么转化泛型数组?

2024-12-03 10:58:38
推荐回答(5个)
回答1:

很奇怪o,你这样搞,func2提供的重载还不够你用么?

补充:
你说了分开不方便维护就说明你这三个重载的代码可重用的部分不多,所以根本不可能完全写成一个方法,还是老老实实维护三个方法吧,除非你想出一个什么好点儿的方案找出公共的部分就容易抽象了

其实关键是像int这种基本类型泛型是没法约束的,而且泛型不是简单的作为重载用的,你要理解泛型的用处和用法才可以

补充2:
用Object有装箱拆箱的性能问题

回答2:

你的fun2也要是泛型方法啊
fun2(T[] x)

还有指定类型的fun2(double[] x)

回答3:

fun2也是泛型方法就好了,返回一个泛型就OK了啊。

回答4:

无法转化 应为T是一个泛型有可能是任意类型的 可能是无法转化成int的类型 这样写就无法通过编译 不知道你是什么意思 如果要想通过不同参数来实现fun2的重载的话 完全可以直接调用 fun2(int[] intArray) 或者 fun2(byte[] byteArray)

为何要通过一个泛型 和fun1函数和泛型T呢

回答5:

void fun2(Array a)
{

}