Bonjour,

J'ai a utiliser une librairie C/C++ écrites en utilisant les MFC (c'est donc relativement ancien) et je commence par réécrire le header dont j'ai besoin. Pour les constante classique en #define ca va. Je fais comme ceci:

Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
     // en C, j'ai ca: #define  DB_NUMMASK  0x00ff
     // en C# je fais ca:
     public const uint DB_NUMMASK  =  0x00ff;

Donc ca se fait bien. En revanche lorsque j'ai des définition "inline" je ne peux pas mieux faire que de créer une fonction. Est-ce que il y a mieux ? Je fais comme ca:

J'ai ça dans le header C
Code c : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
   #define   DB_ATTR_NUM(attr)   ((attr >> DB_NUMSHIFT) & DB_NUMMASK)

J'ai cherché a savoir si on pouvais faire des définition en ligne en C# comme en C. C'est ma question.

En attendant j'ai fait comme ca, en créant des fonctions dans une classe (dans laquelle j'ai toutes mes constantes de header). Comme ca:

Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
   public long DB_ATTR_NUM( uint attr )
   {
      return ( (long) ((attr >> (int) DB_NUMSHIFT) & DB_NUMMASK) );
   }

Question: Est-ce que il y a mieux que de créer une fonction ? Autrement dit, peut-on faire en C# des déclarations inline comme en C ?

Merci.