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);

    }
}

누구든지 도울 수 있습니까 ??


문제를 해결하고 잘못된 방식으로 코드를 작성했습니다. 올바르게 컴파일되지
않았습니다

답변:


56

프로덕션에서이 출력을 사용하려면 Trace 클래스 멤버 를 사용하십시오 . 이렇게하면 코드를 이식 할 수 있고 다양한 유형의 리스너를 연결하고 콘솔 창, 디버그 창, 로그 파일 또는 원하는 다른 항목에 출력 할 수 있습니다.

이것이 특정 코드가 실행되고 있는지 또는 올바른 값이 있는지 확인하는 데 사용하는 임시 디버깅 코드 인 경우 Zach가 제안한 대로 Debug 클래스 를 사용합니다 .

반드시 콘솔을 사용해야하는 경우 프로그램의 메서드에 콘솔연결할있습니다Main .


109

Console콘솔 창 및 Winforms 응용 프로그램에 대한 출력은 콘솔 창을 표시하지 않습니다. System.Diagnostics.Debug.WriteLineIDE의 출력 창에 출력을 보내는 데 사용할 수 있어야합니다 .

편집 : 문제와 관련하여 mainForm_Load실제로 전화를 받고 있는지 확인 했습니까? 보기 시작 부분에 중단 점을 배치 할 수 mainForm_Load있습니다. 호출 mainForm_Load되지 않으면 Load이벤트에 연결되지 않은 것 같습니다 .

또한 파생 클래스 내에서 On{EventName}구독하는 대신 재정의하는 것이 더 효율적이고 일반적으로 더 좋습니다 {EventName}(귀하의 경우 OnLoad대신 재정 의 Load).


5
이렇게? System.Diagnostics.Debug.WriteLine ( "일부 tetttttttttt23423423423423423ttttttttttttttttttttttt");
sark9012

2
@Luke-예,하지만 Import System.Diagnostics훨씬 더 간단하게 만들 수 있습니다 . 그리고 나는 Trace이것을 위해 클래스를 사용하는 것을 선호 합니다.
Joel Coehoorn

2
Visual Studio의 상단 탐색 모음에서보기> 출력으로 이동하여 System.Diagnostics.Debug.WriteLine.
Chad Kuehn

13

당신이 원하는 경우 Console.WriteLine("example text")일시적으로 디버그 출력 창에 표시 Windows 응용 프로그램에 콘솔 응용 프로그램에서 응용 프로그램의 출력 유형을 변경 출력.

메뉴에서 프로젝트 + 속성을 선택하고 출력 유형 : 드롭 다운으로 이동하고 Windows 응용 프로그램으로 변경 한 다음 응용 프로그램을 실행합니다.

물론 IDE 외부에서 실행되는 콘솔 애플리케이션을 빌드하려면 다시 변경해야합니다.

(Visual Studio 2008 및 2010으로 테스트되었으며 이후 버전에서도 작동 할 것으로 예상)


애플리케이션 결과를 빠르게 복사하려는 경우 더 나은 방법입니다.
Mark Kram

2
Console.Writeline이 콘솔 애플리케이션에서 작동하지 않는 이유는 무엇입니까? 이것은 매우 직관적으로 들리지 않습니다.
sydd

^^ 그래, 뭐? 이것은 항상 효과가 있습니다. 그리고 지금은 그렇지 않습니다. 이것은 Visual Studio의 버그처럼 느껴집니다.
Triynko

3

를 사용하면 Console.WriteLine( "Test" );Windows Forms / WPF 프로젝트에 대한 Visual Studio의 출력 창 (보기 메뉴-> 출력)에 로그 메시지를 쓸 수 있습니다.

그러나 작동하지 않고 작동하는 경우가 발생 System.Diagnostics.Debug.WriteLine( "Test" );했습니다. Visual Studio를 Console.WriteLine()다시 시작하고 다시 작업하기 시작했습니다. Visual Studio 버그 인 것 같습니다.


1

명령 줄 응용 프로그램을 개발하는 경우 Console.ReadLine()코드 끝에서을 사용하여 콘솔 창을 닫기 전에 'Enter'키 누름을 기다려 출력을 읽을 수도 있습니다. 그러나 위에 게시 된 추적 및 디버그 답변 모두 더 나은 옵션입니다.


1

"관리되는 호환성 모드 사용"확인란의 선택을 취소하십시오.

도구 => 옵션 => 디버깅 => 일반

그것은 나를 위해 일했습니다.


이전 cpp / cli 프로젝트를 디버깅 할 때이 기능을 사용했으며 분명히이 문제가 발생하고 콘솔에 로깅되지 않는 NLog가 발생합니다.
Blackey

0

Mac VS 2017에서 문제가 발생할 때 (내가 직면 한 문제).

  1. 프로젝트 >> "프로젝트 이름"옵션으로 이동합니다.
  2. 옵션 창이 나타납니다.
  3. RUN >> 기본 메뉴 옵션으로 이동
  4. "외부 콘솔에서 실행"옵션을 TRUE로 선택하고 확인을 말합니다.

지금 애플리케이션 코드를 실행하십시오.


-1

이전 스레드, 그러나 VS 2015 Console.WriteLine은 "Visual Studio 호스팅 프로세스 활성화"가 선택되지 않았거나 프로젝트 속성-> 디버그 탭에서 비활성화 된 경우 출력 창에 쓰지 않습니다.


-3

보기 >> 출력 을 선택 하여 출력 창을 엽니 다.

출력 창에서 결과를 볼 수 있습니다.


1
이것은 질문에 대한 답이 아닙니다. 사용자는 특히 OUTPUT 창에 있다고 말합니다 (따라서 이것을 선택했습니다).
Richard Duerr
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.