C #: usando um genérico para criar uma matriz de ponteiro

Tarde a todos

uma ajudinha, por favor. A fim de contornar o limite de objeto de 2Gb no .net eu fiz uma classe que aloca memória no heap e isso me permite criar matrizes até o limite da minha RAM livre. No entanto, para facilitar o desenvolvimento (como se fosse uma prova de conceito), ele foi codificado para longs. Agora que funciona, estou tentando alterar o código para usar genéricos para que eu possa usar o mesmo código para vários tipos.

Ao alocar a memória e indexar corretamente a matriz, eu preciso de uma matriz de ponteiros do mesmo tipo que a matriz irá conter, ou seja, uma longa matriz precisalong*[] myLargeArray. O problema é quando eu uso genéricos essa declaração se tornaT*[] myLargeArray, que sempre produz o erro'Não é possível obter o endereço, obter o tamanho ou declarar um ponteiro para um tipo gerenciado (' T ')'

Desde já, obrigado.

PS Antes que alguém pergunte, sim eu realmente preciso de matrizes tão grandes.

Exemplo de código para um array 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];
            ...
        }
    }