J'utilise la version de MonoDevelop fournie avec le moteur de jeu Unity. Je n'ai jamais utilisé # if/# endif en C# avant, donc je n'ai jamais remarqué ça. J'ai vérifié cela sur un nouveau fichier vide. Comment puis-je résoudre ce problème?Monodevelop marque tout entre #if et #endif comme commentaire dans le fichier C#
Répondre
J'ai joué un peu avec cela un peu et ce que j'ai remarqué est que le code conditionnel pour un bloc "#if DEBUG" est mis en commentaire. C'est probablement utile quand vous avez atteint le point de construire votre code de version. Le test "debug" reste dans votre code, mais ressemble à un commentaire. Voici ce que je jouais avec de tester que sur, YMMV:
using System;
namespace testConditionalCompile
{
class MainClass
{
public static void Main (string[] args)
{
#if RELEASE
Console.WriteLine("Release code");
#endif
#if DEBUG
Console.WriteLine("Debug code");
#endif
}
}
}
Je me rends compte que le bloc de code conditionnel n'est pas la meilleure façon de l'écrire, mais je pensais que ce pourrait mieux illustrer mon point au-dessus.
Pour ceux qui viennent à cette question portant sur l'une ou les deux #if UNITY_IOS ... #elif UNITY_ANDROID
directives de préprocesseur MONTRANT commentées et/ou d'avoir le code étrange problèmes de formatage, Monodevelop formats que le code en fonction de quelle que soit la plate-forme que vous avez actuellement choisi dans les paramètres de construction. Donc, ce que vous voyez ci-dessous est intentionnel, car ce code est traité par Monodevelop essentiellement de la même manière que le code commenté. La logique est celle-ci puisqu'elle ne sera pas exécutée, ou même incluse dans la construction, qu'elle ne devrait pas être vérifiée dans l'éditeur. Ainsi le traitement de mise en forme/commenté. Personnellement, je trouve cela agaçant, car je devrais être en mesure d'écrire/afficher du code formaté indépendamment de la plate-forme actuelle que j'ai choisi dans les paramètres de construction.
- 1. Eclipse CDT n'indexe pas le code entre #if SYMBOL #endif
- 2. #if, #else, #endif en C# code source
- 3. Utilisation de # if- # else- # endif dans Haskell
- 4. MonoDevelop/MonoTouch #if iPHONE?
- 5. Marque C++ comme obsolète
- 6. différence entre .IF et IF dans l'assemblage
- 7. accolades comme commentaire dans le fichier .inc
- 8. Différence entre les clauses #if et if?
- 9. notation PHP comme si: endif
- 10. Comment passer aux instructions # if/# elif/# endif correspondantes?
- 11. monoDevelop se bloque tout le temps
- 12. javascript, tout comme le commentaire de stackoverflow Aperçu
- 13. #ifdef/#ifndef et #endif
- 14. Marque du Web, le commentaire ne semble pas fonctionner
- 15. .NET Expression régulière pour identifier `if .. then .. else .. endif`
- 16. Verrouiller le fichier entre C et php
- 17. vérifier les numéros de version à l'aide de #if ... #endif
- 18. Comment écrire une instruction MySQL if else endif?
- 19. Regex pour trouver un commentaire dans le fichier source C#
- 20. obtenir le contenu entre le commentaire personnalisé
- 21. Modifier le compilateur C++ dans MonoDevelop
- 22. Commentaire multiligne dans le fichier Ant build.properties
- 23. Supprimer le commentaire # d'ancrage et tout à? Rechercher mais partir? et le reste
- 24. SCons: marque cible comme construit
- 25. Tout compile, mais Resharper marque tout en rouge?
- 26. Pourquoi un commentaire C comme/* */need '<'?
- 27. Resharper - Commentaire derrière if-clause
- 28. compiler l'application web dans monodevelop
- 29. changer la couleur du code dans #if 0 ... #endif bloquer en mode C/C++ dans Emacs 21.3.1
- 30. Ajax poster commentaire comme StackOverflow