Vs arasındaki fark nedir ?Console.WriteLine()Debug.WriteLine()
Yanıtlar:
Console.WriteLine , hata ayıklama veya yayınlama sırasında standart çıkış akışına yazar. Debug.WriteLine , Dinleyicilerdeki izleme dinleyicilerine yazar koleksiyonundaki , ancak yalnızca hata ayıklamada çalışırken. Uygulama sürüm konfigürasyonunda derlendiğinde, Hata Ayıklama öğeleri koda derlenmeyecektir.
Gibi Debug.WriteLinetüm iz dinleyiciye yazıyor Dinleyiciler koleksiyonunda, bu birden fazla yerde çıktı olabileceği mümkündür (Visual Studio çıkış penceresi Konsol Log dosyası, üçüncü taraf uygulama bir dinleyici kaydeder hangi (İnanıyorum DebugView bunu yapar ), vb.).
Console.WriteLine()konsol modu programları içindir. Visual Studio barındırma işleminin güzel bir özelliği, konsolu olmayan işlemler için hata ayıklarken çıktısının Visual Studio Çıktı penceresinde görünmesini sağlar. Bu, hata ayıklama sırasında çok kullanışlıdır, ancak Sürüm yapısını oluşturmaya hazır olduğunuzda bu kodu kaldırmanız (veya bir #ifdef DEBUG ile sarmalamanız) konusunda dikkatli olun. Aksi takdirde programınıza gereksiz ek yükler ekleyecektir. Bu, onu hata ayıklama izleme için idealden daha az yapar.
Debug.WriteLine()DEBUG koşullu # tanımlı ile derlerseniz izleme bilgileri üretir. Hata ayıklama yapısında varsayılan olarak açıktır. Çıktının bittiği yer app.exe.config dosyasında yapılandırılabilir. Bu yapılandırma geçersiz kılınmazsa, .NET otomatik olarak DefaultTraceListener sınıfının bir örneğini sağlar. Debug.WriteLine () metnini Windows OutputDebugString () API işleviyle birlikte hata ayıklayıcıya gönderir. Visual Studio hata ayıklayıcı, bunun Çıktı penceresinde görünmesini sağlar, tıpkı Console.WriteLine () gibi.
Debug.WriteLine () 'ın açık bir avantajı, Release yapısında hiçbir ek yük oluşturmaması, çağrıların etkin bir şekilde kaldırılmasıdır. Ancak bileşik biçimlendirmeyi desteklemez, bunun için String.Format () gerekir. Hata ayıklama izleme için Debug sınıfı sizin seçiminiz olmalıdır.
Console.WriteLine'ı kullanma amacınız yalnızca hata ayıklama amaçlıysa , Debug.WriteLine'ı kullanmanız daha iyi olur .
Kullanıcınıza bir mesaj göstermek istiyorsanız (bir konsol uygulamasında), Console.WriteLine'ı kullanırsınız .
Debug.WriteLine yalnızca uygulamanızda hata ayıklamak içindir. Yayın modunda, hata ayıklama ifadeleriniz göz ardı edilecektir.
Bir konsol uygulamasının başka bir kullanımı, özel derlemeleri test etmektir. DLL'nin derlenmiş sürümünü test etmek için bir çeşit GUI test demeti oluşturma geleneksel yaklaşımından ziyade, DLL'yi bir konsol uygulaması ve konsola / konsoldan giriş / çıkış olarak yeniden oluşturabilirsiniz. Bu tekniğin GUI test koşum takımı oluşturmak için zaman harcamaktan daha hızlı olduğunu buldum.
OutputDebugString(veDebugPrint) aracılığıyla günlüğe kaydedilen iletileri izler .DefaultTraceListenerYazarOutputDebugStringDebugView çıkışını görür, bu yüzden de. msdn.microsoft.com/en-us/library/…