我是 C++ 程序员,我被困在一个迁移项目中,我需要将下面的 C++ 代码转换为 C#。同样需要帮助。
unsigned short** varData = new unsigned short*[ndata]; //Say ndata is 10
for(int i=0; i<ndata; i++) varData[i] = new ushort[nwp];
提前致谢。
这为您提供了一个 16 位无符号整数的 2D 数组,这可能是您尝试在 C++ 中使用指向指针的指针来表达的内容。
int nData = 10;
int nwp = 3;
var varData = new UInt16[ nData, nwp ]; //varData is of type UInt16[,]
http://msdn.microsoft.com/en-us/library/2yd9wwz4(v=vs.71).aspx
如果我理解正确,您使用 unsigned short** 来存储 ushort 的二维数组。在 C# 中,您可以将其声明为
ushort[,] array = new ushort[m, n];
其中 m 和 n 是维度。
使用锯齿状数组,而不是二维数组;如果您需要与 C++ 相同的结果。有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/2s05feca.aspx。