У меня есть многомерный массив указателей на целое число (неизвестного ранга), которые передаются в мою функцию следующим образом:
public unsafe static void MyMethod(Array source, ...)
{
//...
}
Многомерные массивы указателей создаются вне метода и передаются внутрь. Вот пример:
int*[,,,] testArray = new int*[10,10,5,5];
MyMethod(testArray);
Как установить значение в индексе, вычисляемом во время выполнения в массиве? Array.SetValue (...) отлично работает для массивов без указателей, но отказывается работать для моего массива int *. Используя рефлектор, я вижу, что SetValue сводится к вызову InternalSetValue, который принимает объект за значение, но он помечен как внешний, и я не вижу реализации. Я сделал снимок в темноте и попытался передать указатель в штучной упаковке, но безуспешно.