.net 在C+中创建多维数组+/具有空维度大小的CLI

.net 在C+中创建多维数组+/具有空维度大小的CLI,.net,c++-cli,.net,C++ Cli,我正在将C#项目转换为C++/CLI项目。我遇到了这段代码,希望验证我是否使用了正确的C++/CLI语法。我很确定我做错了,当我想设置尺寸时,只是设置参数 原文C#: C++/CLI: array<double, 2>^ _ARRAY = gcnew array<double, 2>{ {num}, {} }; array^\u array=gcnewarray{{{num},{}; 这就是在C++/CLI中创建多维数组的方法。但C#实际上根本不是一个多维数组 这两者是

我正在将C#项目转换为C++/CLI项目。我遇到了这段代码,希望验证我是否使用了正确的C++/CLI语法。我很确定我做错了,当我想设置尺寸时,只是设置参数

原文C#:

C++/CLI:

array<double, 2>^ _ARRAY = gcnew array<double, 2>{ {num}, {} };
array^\u array=gcnewarray{{{num},{};

这就是在C++/CLI中创建多维数组的方法。但C#实际上根本不是一个多维数组

这两者是相同的:

/* C# */ public double[][] arrayOfArray;
/* C++/CLI */ array<array<double>^>^ arrayOfArray;
/*C#*/public double[][]arrayOfArray;
/*C++/CLI*/array^arrayOfArray;
这些也是:

/* C# */ public double [,] array2D;
/* C++/CLI */ array<double,2>^ array2D;
/*C#*/public double[,]array2D;
/*C++/CLI*/array^array2D;
一个真正的二维数组不能像你所展示的那样是半维的,这只有在锯齿数组(数组数组数组)中才可能。对于锯齿阵列,C++/CLI当然应该允许

arrayOfArray = gcnew array<array<double>^>(num);
arrayOfArray=gcnewarray(num);
这是(就像你问题中的C#代码一样)一个由(最初为空)托管句柄到数组的数组

arrayOfArray = gcnew array<array<double>^>(num);