Array et CSharp

matgai Messages postés 1 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 13 février 2003 - 13 févr. 2003 à 15:51
breizhgatch Messages postés 7 Date d'inscription mercredi 29 octobre 2003 Statut Membre Dernière intervention 26 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 ?

Merci d'avance pour vos lanterne !

1 réponse

breizhgatch Messages postés 7 Date d'inscription mercredi 29 octobre 2003 Statut Membre Dernière intervention 26 octobre 2010
1 mars 2006 à 17:03
change ton prototypage de ta fonction: bool MaFonction( int[] Data );
0
Rejoignez-nous