我无法通过搜索找到答案,但也许我问的方式不对。我有一个包含大量矩阵类型函数的程序,这些函数接受 3D 矩阵(以 1D-2D 锯齿状数组的形式)并对元素执行函数。然而,我经常需要使用相同的函数,但使用不同类型的参数:int[][,] 和 float[][,] 和 double[][,]。
到目前为止,我只是重写了相同的方法,但改变了类型,但我有很多这样的东西,不断重写“重新输入”的方法真的很痛苦。
private float SomeFunctionA(float[][,] d)
{
float sum = 0;
for (int k = 0; k < d.GetLength(0); k++)
for (int j = 0; j < d[0].GetLength(1); j++)
for (int i = 0; i < d[0].GetLength(0); i++)
sum += d[k][i,j];
return SomeFunctionB(sum);
}
private float SomeFunctionA(double[][,] d)
{
double sum = 0;
for (int k = 0; k < d.GetLength(0); k++)
for (int j = 0; j < d[0].GetLength(1); j++)
for (int i = 0; i < d[0].GetLength(0); i++)
sum += d[k][i,j];
return SomeFunctionB(sum);
}
有没有更简单的方法来允许不同的类型?如果有一种方法可以拥有一个具有该功能的通用 main 方法(即 3 个 for 循环和其他主体代码),然后是采用不同类型并为每种情况调用通用方法的辅助方法,那就太好了。
谢谢大家。