Je voudrais faire le ci-dessous, mais en C# au lieu de C++
#ifdef _DEBUG
bool bypassCheck=TRUE_OR_FALSE;//i will decide depending on what i am debugging
#else
bool bypassCheck = false; //NEVER bypass it
#endif
Je voudrais faire le ci-dessous, mais en C# au lieu de C++
#ifdef _DEBUG
bool bypassCheck=TRUE_OR_FALSE;//i will decide depending on what i am debugging
#else
bool bypassCheck = false; //NEVER bypass it
#endif
Je vous recommande de vous à l'aide de l' Attribut Conditionnel!
Mise à jour: 3.5 ans plus tard
Vous pouvez utiliser #if
d'exclure certains de la méthode de compilation, mais si vous le faites de cette façon, tout ce que vous avez à exclure de la compilation de tous les morceaux de code qui appel cette méthode (parfois, vous pouvez charger des classes au moment de l'exécution et vous ne trouvez pas l'appelant à "Trouver toutes les références"). Sinon, il y aura des erreurs.
Si vous utiliser la compilation conditionnelle d'autre part, vous pouvez toujours laisser tous les morceaux de code qui appel la méthode. Tous les paramètres peuvent encore être validé par le compilateur. La méthode ne sera pas appelé lors de l'exécution. Je pense que c'est pour mieux cacher la méthode de la juste une fois et ne pas avoir à supprimer tout le code qui l'appelle ainsi. Vous n'êtes pas autorisé à utiliser le conditionnel attribut sur les méthodes qui valeur de retour - uniquement sur les méthodes void. Mais je ne pense pas que c'est une grosse limitation, car si vous utilisez #if
avec une méthode qui retourne une valeur que vous avez à cacher tous les morceaux de code qui l'appelle.
Voici un exemple:
// appel de Class1.ConditionalMethod() sera ignorée lors de l'exécution // à moins que le DÉBOGAGE constante est définie en utilisant le Système.Diagnostics; classe Class1 { [Conditionnel("DEBUG")] public static void ConditionalMethod() { Console.WriteLine("Exécuté Class1.ConditionalMethod"); } }
Résumé:
Je voudrais utiliser #ifdef
en C++, mais avec C#/VB je voudrais utiliser attribut Conditionnel. De cette façon, vous cacher la définition de la méthode sans avoir à cacher les morceaux de code qui l'appelle. Le code d'appel est toujours validée par le compilateur, la méthode n'est pas appelée au moment de l'exécution.
#if
sera votre nouvel ami, je pense.
Si vous souhaitez définir vos propres symboles de la compilation, vous pouvez le faire dans les propriétés du projet (sur l'onglet Construire; "symboles de compilation Conditionnelle").
C# possède un préprocesseur. Il fonctionne un peu différemment que de C++ et C.
Voici un MSDN liens - la section sur tous les directives de préprocesseur.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.