下午好,
如果您能帮忙就更好了。为了规避.NET中的2GB对象限制,我创建了一个在堆上分配内存的类,这使我可以创建数组,直到我的空闲RAM达到极限。但是,为了开发方便(因为它是一个概念验证),它被硬编码为长整型。现在它可以工作了,我一直在尝试修改代码以使用泛型,以便我可以使用相同的代码来处理多个类型。
在分配内存和正确索引数组时,我需要一个指向相同类型的指针数组,即长整型数组需要
PS 在任何人问之前,是的,我确实需要如此大的数组。
2D数组的代码示例:
如果您能帮忙就更好了。为了规避.NET中的2GB对象限制,我创建了一个在堆上分配内存的类,这使我可以创建数组,直到我的空闲RAM达到极限。但是,为了开发方便(因为它是一个概念验证),它被硬编码为长整型。现在它可以工作了,我一直在尝试修改代码以使用泛型,以便我可以使用相同的代码来处理多个类型。
在分配内存和正确索引数组时,我需要一个指向相同类型的指针数组,即长整型数组需要
long*[] myLargeArray
。问题是当我使用泛型时,声明变成了T*[] myLargeArray
,这总是会产生错误'Cannot take the address of, get the size of, or declare a pointer to a managed type ('T')'
提前感谢。PS 在任何人问之前,是的,我确实需要如此大的数组。
2D数组的代码示例:
LargeArray <int> myArray = new LargeArray<int>(x, y);
public unsafe class LargeArray where T : struct
{
...
private T*[] tArr;
...
public LargeArray(long sizeI, long sizeJ)
{
...
myLargeArray = new T*[sizeI];
...
}
}