C#:有没有办法定义未知等级的方法数组参数?
C#: Is there a way to define method array parameter of an unkown rank?
我想定义一个接受数组作为参数的方法,但这个数组可以是任何级别的。排名将由单独的参数指定。 replace/generalize 以下内容:
// 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...
鉴于我已经传入了每个维度的等级和大小,我应该能够概括我的方法中的代码。有什么好的方法可以达到我的要求吗?
您可以使用"System.Array"来管理任何等级的参数:
通过调用 Array.CreateInstance 创建数组实例。
这将为您提供数组 class 的一个实例。
调用 SetValue 为数组赋值。
使用 GetValue 检索数组的任何元素。
public void WorkOnJaggedArray<T>(int rank, int[] dimensions, Array data)
{
/* code */
}
我想定义一个接受数组作为参数的方法,但这个数组可以是任何级别的。排名将由单独的参数指定。 replace/generalize 以下内容:
// 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...
鉴于我已经传入了每个维度的等级和大小,我应该能够概括我的方法中的代码。有什么好的方法可以达到我的要求吗?
您可以使用"System.Array"来管理任何等级的参数:
通过调用 Array.CreateInstance 创建数组实例。
这将为您提供数组 class 的一个实例。 调用 SetValue 为数组赋值。 使用 GetValue 检索数组的任何元素。
public void WorkOnJaggedArray<T>(int rank, int[] dimensions, Array data)
{
/* code */
}