Les directives de pre-processing

Soyez le premier à donner votre avis sur cette source.

Snippet vu 11 886 fois - Téléchargée 27 fois

Contenu du snippet

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 / Exemple :


/*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

A voir également

Ajouter un commentaire

Commentaires

cs_Zeroc00l
Messages postés
370
Date d'inscription
lundi 1 avril 2002
Statut
Membre
Dernière intervention
11 février 2010
-
#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é ...
cs_Crazyht
Messages postés
1522
Date d'inscription
mardi 18 décembre 2001
Statut
Modérateur
Dernière intervention
21 août 2010
4 -
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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.