Quelle est la différence entre vs ?Console
.WriteLine()
Debug
.WriteLine()
90
Console.WriteLine écrit dans le flux de sortie standard, soit en débogage, soit en version. Debug.WriteLine écrit dans les écouteurs de trace dans les écouteurs collection , mais uniquement lors de l'exécution en débogage. Lorsque l'application est compilée dans la configuration de la version, les éléments Debug ne seront pas compilés dans le code.
Comme Debug.WriteLine
écrit sur tous les écouteurs de trace de la collection Listeners , il est possible que cela puisse être généré à plusieurs endroits (fenêtre de sortie de Visual Studio, console, fichier journal, application tierce qui enregistre un écouteur (je crois que DebugView fait cela ), etc.).
OutputDebugString
(etDebugPrint
). LesDefaultTraceListener
écritures dansOutputDebugString
, c'est pourquoi DebugView voit la sortie. msdn.microsoft.com/en-us/library/...Console.WriteLine()
est destiné aux programmes en mode console. Une fonctionnalité intéressante du processus d'hébergement de Visual Studio fait apparaître sa sortie dans la fenêtre de sortie de Visual Studio lors du débogage pour les processus qui n'ont pas de console. C'est très utile lors du débogage, mais sachez que vous devez supprimer ce code (ou l'envelopper avec un #ifdef DEBUG) lorsque vous êtes prêt à créer la version Release. Sinon, cela ajoutera une surcharge inutile à votre programme. Cela le rend moins qu'idéal pour le traçage de débogage.Debug.WriteLine()
génère des informations de traçage si vous construisez avec le DEBUG conditionnel #defined. Ce qui est activé par défaut dans la version Debug. L'endroit où la sortie aboutit peut être configuré dans le fichier app.exe.config. Si cette configuration n'est pas remplacée, .NET fournit automatiquement une instance de la classe DefaultTraceListener. Il envoie le texte Debug.WriteLine () avec la fonction API Windows OutputDebugString () au débogueur. Le débogueur Visual Studio fait apparaître cela dans la fenêtre Sortie, tout comme Console.WriteLine ().Un avantage clair de Debug.WriteLine () est qu'il ne génère aucune surcharge dans la version Release, les appels sont effectivement supprimés. Cependant, il ne prend pas en charge le formatage composite, vous aurez besoin de String.Format () pour cela. Pour le suivi de débogage, la classe Debug doit être votre choix.
la source
Si vous utilisez Console.WriteLine uniquement pour le débogage, vous feriez mieux d'utiliser Debug.WriteLine .
Si vous souhaitez afficher un message à votre utilisateur, vous utiliserez Console.WriteLine .
Debug.WriteLine sert uniquement à déboguer votre application. En mode version, vos instructions de débogage seront ignorées.
Une autre utilisation d'une application console consiste à tester des assemblys privés. Plutôt que l'approche traditionnelle consistant à créer une sorte de harnais de test GUI pour tester la version compilée de la DLL, vous pouvez simplement reconstruire la DLL en tant qu'application console et entrée / sortie depuis / vers la console. J'ai trouvé cette technique plus rapide que de passer du temps à créer un faisceau de test GUI.
la source