matgai
Messages postés1Date d'inscriptionjeudi 16 janvier 2003StatutMembreDernière intervention13 février 2003
-
13 févr. 2003 à 15:51
breizhgatch
Messages postés7Date d'inscriptionmercredi 29 octobre 2003StatutMembreDernière intervention26 octobre 2010
-
1 mars 2006 à 17:03
Bonjour,
Je débute en C# et je vois déjà les limites du tout-objet par rapport à C++. Voici en particulier où je bute :
je veux écrire l'équivalent C++ en C# suivant :
int* pData =new int[size];
// remplissage de pData
for(i....pData[i]=...
// Traitement de pData
MaFonction( pData )
avec
bool MaFonction( byte* pData );
MaFonction ne se préocupe pas du contenu 'sémantique' des données
En C#, je n'arrive pas à retranscrire ce code car un tout est objet, en particulier un int[] et un byte[].
Donc, le code suivant :
int[] Data = new int[size];
// remplissage de pData
for(i....pData[i]=...
MaFonction( pData )
avec
bool MaFonction( byte[] Data );
ne marche pas (il ne compile même pas d'ailleur).
J'ai fouiné un peu, et j'ai trouvé qu'il est possible de faire ce genre d'opération en utilisant du code non managé. Mais ça ne me plait guère car cela ne correspond pas à la philosophie C# et cela ne s'afranchie pas d'une copie (inutile en C++) des données.
Est-ce que quelqu'un a une solution 'élégante' pour ce problème ? Je ne dois pas être le seul à faire ce genre de manip. Peut-être ne suis-je pas assez impreigné de C# et donc je ne part pas sur le bonne voie ?