Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Langue C

Maîtriser les directives de préprocesseur C# : compilation conditionnelle

Les directives de préprocesseur donnent des instructions au compilateur pour prétraiter l'information avant la compilation réelle.

Toutes commencent par #, seules des espaces blancs peuvent les précéder sur une ligne. Ce ne sont pas des instructions (pas de point-virgule). C# n'a pas de préprocesseur séparé, mais traite les directives comme s'il y en avait un. Elles servent à la compilation conditionnelle (pas de macros comme en C/C++).

Directives disponibles

# Directive & Description
1#define : définit un symbole (suite de caractères)
2#undef : annule la définition d'un symbole
3#if : teste si un symbole évalue à true
4#else : alternative dans directive conditionnelle
5#elif : else-if pour directives conditionnelles
6#endif : termine une directive conditionnelle
7#line : modifie numéro de ligne et nom fichier pour erreurs/avertissements
8#error : génère une erreur à un emplacement précis
9#warning : génère un avertissement niveau 1
10#region : bloc repliable dans Visual Studio
11#endregion : fin d'un bloc #region

Directive #define

Crée des constantes symboliques. Utilisé avec #if pour évaluer à true.

#define SYMBOLE

Exemple


#define PI
using System;

namespace ApplicationPreprocesseur
{
    class Programme
    {
        static void Main(string[] args)
        {
            #if (PI)
            Console.WriteLine("PI est défini");
            #else
            Console.WriteLine("PI n'est pas défini");
            #endif
            Console.ReadKey();
        }
    }
}

Résultat : PI est défini

Directives conditionnelles

#if permet de créer des directives conditionnelles. Utiles pour builds debug ou configurations spécifiques.

Syntaxe : #if symbole [opérateur symbole]...

Opérateurs : ==, !=, &&, ||. Groupement par parenthèses possible.

Tout #if doit se terminer par #endif.

Exemple


#define DEBUG
#define VC_V10
using System;

public class ClasseTest
{
    public static void Main()
    {
        #if (DEBUG && !VC_V10)
        Console.WriteLine("DEBUG est défini");
        #elif (!DEBUG && VC_V10)
        Console.WriteLine("VC_V10 est défini");
        #elif (DEBUG && VC_V10)
        Console.WriteLine("DEBUG et VC_V10 sont définis");
        #else
        Console.WriteLine("DEBUG et VC_V10 ne sont pas définis");
        #endif
        Console.ReadKey();
    }
}

Résultat : DEBUG et VC_V10 sont définis

Bonnes pratiques

Langue C

  1. C# Hello World — Construire votre première application C#
  2. Comprendre les mots-clés et identificateurs C# : règles, listes et bonnes pratiques
  3. Maîtriser les variables C# et types de données primitifs : guide complet
  4. Opérateurs C# — Guide complet des opérateurs en C#
  5. Maîtriser les opérateurs bit à bit et de décalage en C# : Guide complet
  6. Fondamentaux C# : Entrées et sorties essentielles
  7. Expressions, instructions et blocs C# : Guide complet avec exemples pratiques
  8. Maîtriser les commentaires C# : Types, bonnes pratiques et documentation XML
  9. Maîtriser l'instruction Switch C# : Syntaxe, exemples et bonnes pratiques