Compilation conditionnelle C# pour les versions de débogage et de version
Dans Visual Studio, lors de la configuration d'une solution avec un seul projet, le paramètre de configuration détermine le mode de construction, généralement « debug » ou « release ». Cependant, lors de l'utilisation de directives de compilation conditionnelles, telles que #if/#then/#elif, il est crucial de s'assurer que les conditions correctes sont évaluées.
Dans l'extrait de code fourni, le développeur vise à différencier les tâches de débogage et modes de libération pour définir les valeurs par défaut des variables. Cependant, le code affiche "Mode=Debug" quel que soit le paramètre de configuration.
La confusion provient des symboles de préprocesseur prédéfinis dans Visual Studio. DEBUG/_DEBUG est automatiquement défini pour les versions de débogage et RELEASE pour les versions release. Cela signifie que définir #define DEBUG dans le code remplace le comportement par défaut de VS et force la condition #if DEBUG à toujours être vraie.
L'approche correcte consiste à supprimer l'instruction #define DEBUG et à s'appuyer à la place sur le préprocesseur. symboles définis par VS. Le code modifié devrait ressembler à ceci :
#if DEBUG Console.WriteLine("Mode=Debug"); #else Console.WriteLine("Mode=Release"); #endif
En utilisant DEBUG comme condition, le code vérifie le symbole du préprocesseur défini en fonction du paramètre de configuration, en distinguant avec précision les modes de débogage et de publication.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!