创建数组时起始索引错误,为什么?

问题描述 投票:0回答:1

我在.net 8中有一小段代码

private byte[,,] GetBytes<T>(T[,] imageArray, int dataSize)
{
    int yDimension = imageArray.GetLength(0); 
    int xDimension = imageArray.GetLength(1);

    byte[,,] result = new byte[yDimension, xDimension, dataSize];

函数在 for 循环内部使用

在调试中我看到 x 和 y 维度为 1024,dataSize 为 2, 有时结果数组的创建方式类似于 byte[1024, 219..1242, 2] 有什么想法为什么会发生这种情况吗?

debug

我用谷歌搜索了很多,但没有任何相关的..

c# arrays indexing new-operator .net-8.0
1个回答
0
投票

您提供的代码片段似乎在数组创建部分有一个拼写错误。创建 3D 字节数组的正确语法缺少等号。这是更正后的代码:

private byte[,,] GetBytes<T>(T[,] imageArray, int dataSize)
{
    int yDimension = imageArray.GetLength(0); 
    int xDimension = imageArray.GetLength(1);

    byte[,,] result = new byte[yDimension, xDimension, dataSize];

    // Your function logic here...

    return result;
}

在您的代码中,您有: byte[,,] 结果 new byte[yDimension, xDimension, dataSize];

应该是: byte[,,] 结果 = 新字节[yDimension, xDimension, dataSize];

确保使用正确的语法创建数组。如果问题仍然存在,则周围代码或函数调用方式中可能存在其他问题。确保 dataSize 和 imageArray 的尺寸符合预期。

© www.soinside.com 2019 - 2024. All rights reserved.