我想定义一个接受数组作为参数的方法,但是这个数组可以是任何等级。等级将由单独的参数指定。替换/概括以下内容:
// one dimensional array
public void WorkOnJaggedArray<T>(int rank, int[] dimensions, T[] data)
{
/* code */
}
// two dimensional array
public void WorkOnJaggedArray<T>(int rank, int[] dimensions, T[][] data)
{
/* code */
}
// three dimensional array
public void WorkOnJaggedArray<T>(int rank, int[] dimensions, T[][][] data)
{
/* code */
}
// and so on...
鉴于我已经传入了每个维度的等级和大小,我应该能够概括我的方法中的代码。有没有一种很好的方法来实现我所要求的目标?
答案 0 :(得分:2)
您可以使用“System.Array”来管理任何级别的参数:
通过调用Array.CreateInstance来创建数组实例。
这将为您提供Array类的实例。 调用SetValue为数组赋值。 使用GetValue检索数组的任何元素。
public void WorkOnJaggedArray<T>(int rank, int[] dimensions, Array data)
{
/* code */
}