相关疑难解决方法(0)

C#:使用泛型来创建指针数组

下午所有,

如果你愿意,请帮助一下.为了规避.NET中的2Gb对象限制,我创建了一个在堆上分配内存的类,这允许我创建最大可达RAM空间的数组.但是,为了便于开发(因为它是一个概念证明),它很难编写.现在它工作了我一直在尝试改变代码使用泛型,所以我可以使用相同的代码多种类型.

在分配内存并正确索引数组时,我需要一个与数组相同类型的指针数组,即需要长数组long*[] myLargeArray.问题是当我使用泛型这个声明变成时T*[] myLargeArray,它总是产生错误'不能取地址,获取大小,或者声明一个指向托管类型的指针('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];
            ...
        }
    }

Run Code Online (Sandbox Code Playgroud)

c# generics pointers

12
推荐指数
2
解决办法
2707
查看次数

标签 统计

c# ×1

generics ×1

pointers ×1