C #: Usando un genérico para crear una matriz de punteros

Toda la tarde

Un poco de ayuda por favor. Para evitar el límite de objetos de 2Gb en .NET, he creado una clase que asigna memoria en el montón y esto me permite crear matrices hasta el límite de mi RAM libre. Sin embargo, por su facilidad de desarrollo (ya que era una prueba de concepto), fue codificado por mucho tiempo. Ahora que funciona, he estado intentando modificar el código para usar los genéricos, por lo que puedo usar el mismo código para varios tipos.

Al asignar la memoria e indexar correctamente la matriz, necesito una matriz de punteros del mismo tipo que la matriz tendrá, es decir, una matriz larga.long*[] myLargeArray. El problema es que cuando uso genéricos esta declaración se convierte enT*[] myLargeArray, que siempre produce el error.'No se puede tomar la dirección de, obtener el tamaño o declarar un puntero a un tipo administrado (' T ')'

Gracias por adelantado.

PD: Antes de que alguien pregunte, sí, realmente necesito conjuntos tan grandes.

Ejemplo de código para una matriz 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];
            ...
        }
    }

Respuestas a la pregunta(2)

Su respuesta a la pregunta