C #: Verwenden eines generischen zum Erstellen eines Zeigerarrays

Nachmittag alle,

bitte etwas hilfe. Um das 2-Gbit-Objektlimit in .NET zu umgehen, habe ich eine Klasse erstellt, die Speicher auf dem Heap zuweist. Auf diese Weise kann ich Arrays bis zur Grenze meines freien RAM erstellen. Um die Entwicklung zu vereinfachen (da es sich um einen Proof of Concept handelte), wurde es jedoch für lange Zeit hart codiert. Jetzt, da es funktioniert, habe ich versucht, den Code für die Verwendung von Generika zu ändern, damit ich denselben Code für mehrere Typen verwenden kann.

Bei der Zuweisung des Speichers und der korrekten Indizierung des Arrays benötige ich ein Array von Zeigern des gleichen Typs, den das Array enthalten wird, d. H. Ein langes Array benötigtlong*[] myLargeArray. Das Problem ist, wenn ich Generika benutze wird diese DeklarationT*[] myLargeArray, was immer den Fehler erzeugt'Kann nicht die Adresse von, die Größe von oder einen Zeiger auf einen verwalteten Typ (' T ') deklarieren'

Danke im Voraus.

PS Bevor jemand fragt, brauche ich wirklich so große Arrays.

Codebeispiel für ein 2D-Array:


    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];
            ...
        }
    }

Antworten auf die Frage(2)

Ihre Antwort auf die Frage