1

考虑一个二维矩形阵列。说:

int[,] values = new int[len1, len2];

如何在unsafe代码中遍历它的所有值?

4

1 回答 1

2

以下工作在unsafe上下文中。

fixed (int* baseOffset = values)
{
    var offset = baseOffset;
    var count = len1 * len2;
    for (int i = 0; i < count; i++)
    {
        int value = *offset;
        // Do whatever you need to do here
        offset++;
    }
}

请注意,要获取指向数组中第一项的指针,类型必须匹配。因此,如果您有一个byte*要视为 的ushort*,则不能在fixed语句的括号内强制转换指针,尽管您可以在块中执行此操作。

于 2012-10-31T00:55:13.227 回答