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.