Union de bool et de byte marche pas en C# ?

Signaler
Messages postés
3
Date d'inscription
vendredi 21 novembre 2008
Statut
Membre
Dernière intervention
11 mai 2009
-
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
-
Salut,

Je débute en C#   et je dévellope une interface USB PIC HID  , et je n'arrive pas à faire un union de bool et de byte : comme en C

union
{
   bool b[8];
   byte octet;
}
Entree[8];

pouvoir utiliser Entree[0->7].octet, et Entree[0->7].b[0->7] par exemple car j'ai 64 entrées et autant de sorties.

Apparement le union n'existe pas en C#;
J'ai essayé avec une fonction [StructLayout(LayoutKind.Explicit)] mais ça ne va pas car tout les bools ont la meme adresse memoire.

Si quelqu'un avait une idée.

merci de votre aide

2 réponses

Messages postés
3
Date d'inscription
vendredi 21 novembre 2008
Statut
Membre
Dernière intervention
11 mai 2009

mince je crois que j'ai compris

[System.Runtime.InteropServices.StructLayout(LayoutKind.Explicit)]
struct TestUnion
{
[System.Runtime.InteropServices.FieldOffset(0)]
publicbool b[8];

[System.Runtime.InteropServices.FieldOffset(0)]
public byte octet;
}

ça marchera ?

merci
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
54
Salut,

Je ne suis pas un spécialiste de l'interop, mais voici quelques idées:
-Laykind.Auto
-Mettre un FieldOffset de 1
-Lire ce blog: http://blogs.developpeur.org/cyril/archive/2003/10/15/taille-boolean-memoire.aspx

<hr />
-Blog-
-Site Perso-