Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

LES DIRECTIVES DE PRE-PROCESSING


Information sur la source

Catégorie :Tutoriaux Source .NET ( DotNet ) Classé sous : preprocessing Niveau : Initié Date de création : 05/02/2004 Date de mise à jour : 05/02/2004 13:25:47 Vu : 7 597

Note :
9 / 10 - par 2 personnes
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note

Description

Voici de petits trucs qui permettent de réaliser un code à mon avis plus clair de programmation en C# :
#define et #undef : Ces directives permettent de définir des symboles de compilation conditionnelle. Attention, #define ne permet pas de définir des abbréviation comme en c pur.

#if, #elif, #else, and #endif : effectue une compilation conditionnelle. Seul un partie du code sera compilé.

#error and #warning : permettent d'afficher des message d'erreur ou d'avertissement à la compilation.

#region and #endregion : permettent de définir des région de code. Elles peuvent être imbriquées. Cette otpion est particulièrement avec VS.Net, car on peut d'un clic sur le coté, réduire toute la région. A utiliser pour un code clair.

#line : permet de redéfinir les numéro de ligne. Je ne vois personnellement pas l'intéret.
 

Source

  • /*DEBUG est défini par défaut par VS.NET en mode debug.*/
  • #if DEBUG
  • /*Code à effectuer seulement en DEBUG, message d'erreur ou d'exception, etc*/
  • ...
  • /* Le messagesuivant ne sera affiché que lors d'une compilation en DEBUG*/
  • #warning Compiled in debug mode
  • #else
  • /*Si il y a du code a effectuer seulement dans la version finale*/
  • #endif
  • /*pour ne pas effectuer les tests, enlever ligne suivante.*/
  • #define TEST
  • #if TEST
  • /*Batterie de tests a effectuer*/
  • #endif
  • #region Properties
  • /*mettre les propriétés de la classe ici.*/
  • #endregion
  • #region methods
  • #region private methods
  • /*mettre les méthodes privées ici*/
  • #endregion
  • #region public methods
  • /*mettre les méthodes publiques ici*/
  • #endregion
  • #endregion
/*DEBUG est défini par défaut par VS.NET en mode debug.*/
#if DEBUG
/*Code à effectuer seulement en DEBUG, message d'erreur ou d'exception, etc*/
...
/* Le messagesuivant ne sera affiché que lors d'une compilation en DEBUG*/
#warning Compiled in debug mode	
#else
/*Si il y a du code a effectuer seulement dans la version finale*/
#endif

/*pour ne pas effectuer les tests, enlever ligne suivante.*/
#define TEST
#if TEST
/*Batterie de tests a effectuer*/
#endif

#region Properties
/*mettre les propriétés de la classe ici.*/
#endregion

#region methods
#region private methods
/*mettre les méthodes privées ici*/
#endregion

#region public methods
/*mettre les méthodes publiques ici*/
#endregion
#endregion

Conclusion

Voilà. A retenir :
#if DEBUG combiné avec #warning permet d'effectuer du code lors de la phase de développement. ce code sera dans la source, mais pas exécuté en Release. Le warning est là pour ne pas oublier de remettre en mode Release pour la version finale.

#region : personnellement, c'est un moyen simple et efficace d'organiser son code, il aidera grandement ceux qui devraient peut-être le retoucher.

En espérant que ceci vous aidera,
SharpMao
 

Commentaires et avis

signaler à un administrateur
Commentaire de Crazyht le 06/02/2004 00:06:58 administrateur CS

Il est a noté aussi la presence de la definition TRACE definit en Debug comme en Release par VS.NET.

Et le code entre #if DEBUG .... #endif ne sera meme pas présent dans le code generé en release. Ce qui reduit encore un peu  ca taille, enfin pour les gens comme moi qui en mettent partout pour le debug :)

@++
CrazyHT

signaler à un administrateur
Commentaire de Zeroc00l le 05/09/2007 21:05:02

#line est souvent utilisée pour le code généré.
En effet lorsqu'un programme analyse un fichier pour générer du code,
si le fichier d'entré est erroné, le code généré l'est aussi.
Dans ce cas le compilateur utilise la ligne courante et le nom du fichier en cours de compilation
pour indiquer l'erreur.
Il est donc intéressant d'indiquer l'erreur dans le fichier d'entré,
à l'endroit responsable de la mauvaise génération,
plutôt qu'un endroit obscure dans du code généré ...

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,686 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.