C# 传递和分配多维数组

C# 传递和分配多维数组,c#,C#,我已经传递了一个多维数组作为参数;但是,我不知道将其分配给新的多维阵列(新阵列)的最佳方式是什么 例如: double[, , , ,] results; object[,] scales; public plot(double[, , , ,] x, object[,] y) { results= x; scales = y; } 我想这就是你要找的 您的代码: double[,,,,] results; object[,] scale

我已经传递了一个多维数组作为参数;但是,我不知道将其分配给新的多维阵列(新阵列)的最佳方式是什么

例如:

double[, , , ,] results;
object[,] scales;    
public plot(double[, , , ,] x, object[,] y)
    {
        results= x;
        scales = y;
    }
我想这就是你要找的

您的代码:

double[,,,,] results;
object[,] scales;
public void Plot(ref double[,,,,] x, ref object[,] y)
{
   results = x;
   scales = y;
}

refout之间的差异是数组类型参数的out在传递给参数之前不需要初始化数组;相比之下,ref需要数组的初始化。

这取决于您所说的“新数组”是什么意思。如果这意味着将变量“x”中的数组赋值给result,那么您做得非常好。但如果您打算创建“x”的新副本,则可以使用以下函数:

double[,,,,] results;
object[,] scales;
public plot(double[, , , ,] x, object[,] y)
{
    results = (double[, , , ,])x.Clone();
    scales = (object[,])y.Clone();
}