2010-06-10 16 views

cevap

76

Console.WriteLine debug veya serbest halinde, standart çıktı akımına yazar. Debug.WriteLine, Listeners koleksiyonundaki izleme dinleyicilerine yalnızca ayıklamada çalışırken yazıyor. Uygulama, sürüm yapılandırmasında derlendiğinde, Hata Ayıklama öğeleri kodda derlenmeyecektir. Debug.WriteLineListeners koleksiyonundaki tüm iz dinleyicilere yazdığı gibi

, (bir dinleyici kaydeder birden fazla yerde çıkışı (Visual Studio çıkış penceresi Konsol, Log dosyası, üçüncü taraf uygulama olabileceğini mümkündür Ben DebugView bunu yapar, vb.).

+7

Kesin DebugView doğal Windows API çağrısı 'OutputDebugString' (ve' DebugPrint') üzerinden açmış mesajları izler. 'DefaultTraceListener', 'OutputDebugString' yazıyor, bu yüzden DebugView çıktıyı görüyor. http://msdn.microsoft.com/en-us/library/system.diagnostics.defaulttracelistener.aspx – MarkJ

27

Console.WriteLine() konsol modu programlar için tasarlanmıştır. Visual Studio barındırma işleminin güzel bir özelliği, bir konsolu olmayan işlemler için hata ayıklama yaparken, çıktılarını Visual Studio Çıkış penceresinde görüntülemesini sağlar. Hata ayıklama yaparken çok kullanışlıdır, ancak Sürüm oluşturmayı hazır olduğunuzda bu kodu kaldırmanız gerektiğine dikkat edin (veya bir #ifdef DEBUG ile sarın). Aksi takdirde programınıza gereksiz ek yükler ekleyecektir. Bu, hata ayıklama takibi için idealden daha az yapar. DEBUG koşullu #defined ile oluşturursanız, izleme bilgilerini oluşturur. Debug yapısında varsayılan olarak açıktır. Çıkış bittiğinde, app.exe.config dosyasında yapılandırılabilir. Bu yapılandırma geçersiz kılmazsa, .NET otomatik olarak DefaultTraceListener sınıfının bir örneğini sağlar. Hata ayıklayıcısına Windows OutputDebugString() API işleviyle Debug.WriteLine() metnini gönderir. Visual Studio hata ayıklayıcısını, Console.WriteLine() gibi, Çıkış penceresinde görünen yapar.

Debug.WriteLine() açık bir avantajı, Yayın yapısında hiçbir yükü oluşturur, yani çağrı etkili bir şekilde çıkarılır. Ancak, bileşik biçimlendirmeyi desteklemez, bunun için String.Format() gerekir. Hata ayıklama izleme için, Debug sınıfı sizin tercihiniz olmalıdır.

14

Console.WriteLine kullanma amacınız yalnızca hata ayıklama amaçlıysa, daha iyi Debug.WriteLine kullanın. Eğer kullanıcıya mesaj göstermek isterseniz

, sen Console.WriteLine kullanırsınız.

Debug.WriteLine yalnızca uygulama hata giderme amaçlıdır. 'da yayın modu, hata ayıklama ifadeleriniz dikkate alınmaz.

Konsol uygulamasının başka bir kullanımı özel montajları test etmektir. DLL derlenmiş sürümünü sınamak için bir çeşit GUI sınama derlemesinin geleneksel yaklaşımından ziyade, bir konsol uygulaması olarak DLL dosyasını yeniden yapılandırabilir ve konsola giriş/çıkış yapabilirsiniz. Bu tekniği bir GUI test demeti oluşturmak için harcadığınız zamandan daha hızlı buldum.

+2

"Kullanıcıya bir mesaj göstermek istiyorsanız, konsol.writeline adresini kullanırsınız."Bu, bazı insanları karıştırırdı çünkü bir konsol uygulamasında çalıştırılıyorsa kullanıcıya bir şey gösterecektir. –

İlgili konular