Après-midi tous,C#: Utilisation d'un générique pour créer un tableau de pointeurs
un petit coup de pouce s'il vous plaît. Afin de contourner la limite d'objet 2Gb dans .NET, j'ai créé une classe qui alloue de la mémoire sur le tas et cela me permet de créer des tableaux jusqu'à la limite de ma RAM libre. Cependant, pour faciliter le développement (comme c'était une preuve de concept), il a été codé dur pour les longs. Maintenant que cela fonctionne, j'ai essayé de modifier le code pour utiliser des génériques afin que je puisse utiliser le même code pour plusieurs types. Dans l'allocation de la mémoire et l'indexation correcte du tableau, j'ai besoin d'un tableau de pointeurs du même type que le tableau tiendra, c'est-à-dire qu'un tableau long a besoin de long*[] myLargeArray
. Le problème est quand j'utilise génériques cette déclaration devient T*[] myLargeArray
, qui produit toujours l'erreur « Impossible de prendre l'adresse, obtenir la taille, ou déclarer un pointeur vers un type managé (» T «) »
Merci d'avance. Post-scriptum Avant tout le monde demande, oui, j'ai vraiment besoin de tels grands tableaux.
exemple de code pour un tableau 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];
...
}
}
Je pense que le modèle d'usine est certainement la voie à suivre ici. –