Console.WriteLine आउटपुट विंडो में दिखाई नहीं देता है


85

मैंने Console.WriteLineपरीक्षण के लिए कुछ कॉल लगाए हैं , लेकिन वे आउटपुट बॉक्स में दिखाई नहीं दे रहे हैं?

public static ArrayList myDeliveries = new ArrayList();

public mainForm(){
    InitializeComponent();
}

private void mainForm_Load(object sender, EventArgs e){

    if (!File.Exists("../../MealDeliveries.txt")){
        MessageBox.Show("File not found!");
        return;
    }

    using (StreamReader sr = new StreamReader("../../MealDeliveries.txt")){
        //first line is delivery name 
        string strDeliveryName = sr.ReadLine();
        Console.WriteLine("Test content");

        while (strDeliveryName != null){

            //other lines 
            Delivery d = new Delivery(
                strDeliveryName, 
                sr.ReadLine(),
                sr.ReadLine(), 
                sr.ReadLine(),
                sr.ReadLine(), 
                sr.ReadLine(),
                sr.ReadLine()
            );

            mainForm.myDeliveries.Add(d);

            //check for further values
            strDeliveryName = sr.ReadLine();
        }
    }

    displayDeliveries();


}


private void displayDeliveries(){

    lstDeliveryDetails.Items.Clear();
    Console.WriteLine("Test content");
    Console.WriteLine(mainForm.myDeliveries.Count);
    foreach (Delivery d in mainForm.myDeliveries){
        lstDeliveryDetails.Items.Add(d.DeliveryName);

    }
}

क्या कोई मदद कर सकता है ??


समस्या को हल किया, कोड को गलत तरीके से लिखा। ठीक से संकलित नहीं किया गया
sark9012

जवाबों:


56

यदि आप उत्पादन में इस आउटपुट का उपयोग करने का इरादा रखते हैं, तो ट्रेस क्लास के सदस्यों का उपयोग करें । यह कोड को पोर्टेबल बनाता है, आप विभिन्न प्रकार के श्रोताओं और आउटपुट को कंसोल विंडो, डिबग विंडो, लॉग फ़ाइल, या जो कुछ भी आप पसंद करते हैं, को तार कर सकते हैं।

यदि यह सिर्फ कुछ अस्थायी डिबगिंग कोड है, जिसका उपयोग आप यह सत्यापित करने के लिए कर रहे हैं कि कुछ कोड निष्पादित किए जा रहे हैं या सही मान हैं, तो Zach के सुझाव के अनुसार डीबग वर्ग का उपयोग करें

यदि आप बिल्कुल कंसोल का उपयोग करना चाहते हैं, तो आप प्रोग्राम की विधि में एक कंसोल संलग्न कर सकते हैंMain


109

Consoleकंसोल विंडो और Winforms अनुप्रयोगों के लिए आउटपुट कंसोल विंडो नहीं दिखाते हैं। आपको System.Diagnostics.Debug.WriteLineअपने IDE में आउटपुट विंडो पर आउटपुट भेजने के लिए उपयोग करने में सक्षम होना चाहिए ।

संपादित करें: समस्या के संबंध में, क्या आपने सत्यापित किया mainForm_Loadहै कि वास्तव में आपको बुलाया जा रहा है? आप mainForm_Loadदेखने की शुरुआत में एक विराम बिंदु रख सकते हैं। यदि इसे नहीं बुलाया जा रहा है, तो मुझे संदेह है कि घटना के mainForm_Loadलिए आदी नहीं है Load

इसके अलावा, यह व्युत्पन्न वर्गों के भीतर (आपके मामले में ओवरराइडिंग के बजाय ) से On{EventName}सदस्यता लेने के बजाय अधिक कुशल और आम तौर पर बेहतर है ।{EventName}OnLoadLoad


5
इस कदर? System.Diagnostics.Debug.WriteLine ("कुछ tetttttttttt23423423423423423423ttttttttttttttttttt");
sark9012

2
@ ल्यूक - हाँ, लेकिन आप Import System.Diagnosticsइसे बहुत सरल बना सकते हैं । और मैं इसके लिए Traceकक्षा का उपयोग करना पसंद करता हूं ।
जोएल कोएहॉर्न

2
विजुअल स्टूडियो के शीर्ष नौबार में व्यू> आउटपुट से मानों को देखने के लिए जाएं System.Diagnostics.Debug.WriteLine
चाड कुह्न

13

अगर तुम चाहो Console.WriteLine("example text") आउटपुट को डिबग आउटपुट विंडो में दिखाना हैं, तो अस्थायी रूप से अपने एप्लिकेशन के आउटपुट प्रकार को कंसोल एप्लिकेशन से विंडोज एप्लिकेशन में बदल दें।

मेनू से प्रोजेक्ट + गुण चुनें, और आउटपुट प्रकार पर नेविगेट करें: ड्रॉप डाउन करें, विंडोज एप्लिकेशन में बदलें फिर अपना एप्लिकेशन चलाएं

बेशक आपको आईडीई के बाहर चलाने के इरादे से कंसोल एप्लिकेशन बनाने के लिए इसे वापस बदलना चाहिए।

(विजुअल स्टूडियो 2008 और 2010 के साथ परीक्षण किया गया, उम्मीद है कि इसे बाद के संस्करणों में भी काम करना चाहिए)


यह एक बेहतर तरीका है यदि आप अपने आवेदन के परिणामों को जल्दी से कॉपी करना चाहते हैं।
मार्क क्रैम

2
Console.Writeline किसी Console एप्लिकेशन में काम क्यों नहीं करता है? यह बहुत काउंटर सहज लगता है।
सिल्ड

^ ^ हाँ, क्या? इसने हमेशा काम किया है। और अब यह नहीं है। यह विजुअल स्टूडियो के बग जैसा लगता है।
त्रिंको

3

का उपयोग करना Console.WriteLine( "Test" );लॉग संदेश को आउटपुट विंडो (दृश्य मेनू -> आउटपुट) को किसी Windows प्रपत्र / WPF प्रोजेक्ट के लिए Visual Studio में लिखने में सक्षम है।

हालांकि, मुझे एक ऐसे मामले का सामना करना पड़ा जहां यह काम नहीं कर रहा System.Diagnostics.Debug.WriteLine( "Test" );था और केवल काम कर रहा था। मैंने विज़ुअल स्टूडियो को Console.WriteLine()फिर से शुरू किया और फिर से काम करना शुरू कर दिया। एक दृश्य स्टूडियो बग होने लगता है।


1

यदि आप एक कमांड लाइन एप्लिकेशन विकसित कर रहे हैं, तो आप Console.ReadLine()अपने कोड के अंत में कंसोल विंडो बंद करने से पहले 'एन्टर' कुंजी के लिए प्रतीक्षा कर सकते हैं ताकि आप अपना आउटपुट पढ़ सकें। हालाँकि, ऊपर पोस्ट किए गए ट्रेस और डीबग उत्तर दोनों ही बेहतर विकल्प हैं।


1

चेकबॉक्स का उपयोग करने का प्रयास करें "प्रबंधित संगतता मोड का उपयोग करें"

उपकरण => विकल्प => डिबगिंग => सामान्य

इसने मेरे लिए काम किया।


जब मैं पिछले cpp / cli प्रोजेक्ट डीबगिंग पर यह था और जाहिरा तौर पर इस समस्या का कारण बनता है और साथ ही NLog कंसोल पर लॉगिंग नहीं है।
दोपहर

0

जब मैक वीएस 2017 (जो मैंने सामना किया) पर हो रहा है।

  1. प्रोजेक्ट पर जाएं >> "आपका प्रोजेक्ट नाम" विकल्प।
  2. एक विकल्प विंडो पॉप अप होगी
  3. RUN >> डिफ़ॉल्ट मेनू विकल्प पर जाएं
  4. "बाहरी कंसोल पर चलाएं" विकल्प को टिक करें और ठीक कहें

अब अपना एप्लिकेशन कोड चलाएँ।


-1

पुराना धागा, लेकिन वीएस 2015 कंसोल में। क्राइटलाइन आउटपुट विंडो में नहीं लिखता है यदि "विजुअल स्टूडियो होस्टिंग प्रोसेस को सक्षम करें" प्रोजेक्ट गुणों में जाँच या अक्षम नहीं है -> डीबग टैब


-3

दृश्य का चयन करें >> आउटपुट विंडो खोलने के लिए आउटपुट।

आउटपुट विंडो में, आप परिणाम देख सकते हैं


1
इस सवाल का जवाब नहीं है। उपयोगकर्ता विशेष रूप से कहता है कि वे OUTPUT विंडो पर हैं (और इसलिए इसका चयन किया गया है)।
रिचर्ड ड्यूयर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.