Мне нужно получить адрес памяти первого элемента массива произвольного типа, который хранится как тип объекта. Например, массив может быть double [] или int [], но в коде он будет напечатан как Object.
Хотя получить адрес массива известного типа довольно просто, получение адреса объекта в C # недопустимо. Есть ли тип (отличный от Object), который я мог бы использовать для хранения такого массива и чей адрес памяти можно было бы легче получить? Или есть способ использовать Interop / Reflection для прямого доступа к адресу без необходимости в промежуточной копии данных?
Обратите внимание во второй строке ниже, что double [] сохраняется как объект. И обратите внимание в строке fixed (), что я пытаюсь получить адрес o, что запрещено в C #.
Заранее спасибо!
int len=100;
object o = new double [len];
unsafe
{
fixed(int*ptr=&o)
for (int index = 0; index < len; index++)
{
// access data directly to copy it, etc...
}
}