Quand #if DEBUG fonctionne
J'ai ce code dans ma classe C#.
#if DEBUG
private const string BASE_URL = "http://www.a.com/";
#else
private const string BASE_URL = "http://www.b.com//";
#endif
Ce que je voulais demander, c'est quand le
#if DEBUG
chemin dans le code exécuté?
T-il exécuté
- Quand je lance une session de débogage dans Visual Studio?
- Quand je exécuter manuellement le fichier exe ou dll en question à partir du dossier de débogage?
- Toute autre circonstance, j'ai oublié de mentionner?
#if DEBUG
jamais fonctionne, mais l'influence de la compilation du code.
Vous devez vous connecter pour publier un commentaire.
#if DEBUG
C'est une définition de préprocesseur.Il compile lorsque vous définissez DEBUG constante. Et oui, c'est par défaut sur la version de Débogage de Configuration.
De Projet Visual Studio 2010 Propriétés:
Si
Define DEBUG constant
est vérifié contre la volonté de la compilation:Autre (pas vérifié) contre la volonté de la compilation:
C'est une directive de préprocesseur. Le code dans le DEBUG partie est compilé, quand tu fais un debug (plus précisément lorsque le DÉBOGAGE constante est définie). I. e. si vous ne debug BASE_URL aura point de http://www.a.com. Sinon, il sera à point http://www.b.com.
Lorsque vous compilez avec le DÉBOGAGE de la directive. Donc, si elle est définie, seule la première ligne fera partie de la compilation des binaires et si c'est pas le jeu de la deuxième ligne sera le cadre de la binaire.
Le DÉBOGAGE par défaut est défini lorsque vous compilez la configuration debug VS, cependant, vous pouvez définir manuellement pour toute configuration
VS 2017 fait sens la configuration active et, par exemple gris le débogage condition si la libération de configuration est sélectionné.
Qui est une "directive de compilation", ce qui signifie qu'il sera fait d'inclure ou d'exclure le code à partir du processus de création (ou de la compilation) basé sur le #if que vous mettez dans. Cela étant dit, les symboles de DÉBOGAGE est dans les propriétés de votre projet, et dans Visual Studio est généralement supprimé automatiquement sur la "Libération" de construire.
Donc, fondamentalement, il n'a pas à être dans Visual studio cours d'exécution dans le débogage, et il n'a pas à être dans un certain dossier, votre code est construit de cette façon.
Si vous compilez avec la configuration de DÉBOGAGE, le code avant le else de la ligne sera compilé, tandis que les autres ne le seront pas. Si vous compilez dans toute autre configuration, la deuxième ligne sera compilé, tandis que le premier ne sera pas.
Allez dans "Propriétés du Projet"--> Onglet Build de l'application. Si la Configuration: Active (Debug) puis configuration de Débogage est activé.
Ci-dessous code affichera sur la console.
Si la Configuration: Actif(Libération) puis Relâchez-la configuration est activée.Ci-dessous code affichera sur la console.
Si vous souhaitez basculer entre DEBUG et RELEASE mode "Debug/Release/Gestionnaire de Configuration" drop en bas à droite sous le Menu Outils.Des excuses comme la plupart des développeurs sais...mais est parfois négligé et les causes de la confusion pourquoi le code ci-dessus ne fonctionne pas correctement.