programing

콘솔의 차이점은 무엇입니까?WriteLine() 대 Debug.줄 쓰기()?

javaba 2023. 5. 29. 20:41
반응형

콘솔의 차이점은 무엇입니까?WriteLine() 대 Debug.줄 쓰기()?

사이에 무슨 차이가 있습니까?.WriteLine().WriteLine()?

콘솔.WriteLine은 디버그 또는 릴리스의 표준 출력 스트림에 씁니다.Debug.WriteLine수신기 컬렉션의 추적 수신기에 기록하지만 디버그에서 실행되는 경우에만 기록합니다.응용 프로그램이 릴리스 구성에서 컴파일될 때 디버그 요소는 코드로 컴파일되지 않습니다.

~하듯이Debug.WriteLine수신기 컬렉션의 모든 추적 수신기에 기록합니다. 수신기가 둘 이상의 위치(Visual Studio 출력 창, 콘솔, 로그 파일, 수신기를 등록하는 타사 응용 프로그램(DebugView에서 이 작업을 수행할 것으로 생각됨)에서 출력될 수 있습니다.

Console.WriteLine()콘솔 모드 프로그램용입니다.Visual Studio 호스팅 프로세스의 좋은 기능은 콘솔이 없는 프로세스를 디버깅하는 동안 Visual Studio 출력 창에 출력이 표시되도록 합니다.디버깅하는 동안 매우 유용하지만 릴리스 빌드를 만들 준비가 되면 이 코드를 제거하거나 #ifdeF DEBUG로 묶어야 합니다.그렇지 않으면 프로그램에 불필요한 오버헤드가 추가됩니다.따라서 디버그 추적에 적합하지 않습니다.

Debug.WriteLine()DEBUG 조건부 #defined로 빌드하는 경우 추적 정보를 생성합니다.기본적으로 디버그 빌드에 설정되어 있습니다.출력이 끝나는 위치는 app.exe.config 파일에서 구성할 수 있습니다.이 구성을 재정의하지 않으면 .NET은 자동으로 DefaultTraceListener 클래스의 인스턴스를 제공합니다.디버그를 보냅니다.Windows OutputDebugString() API 함수가 있는 WriteLine() 텍스트를 디버거에 보냅니다.Visual Studio 디버거는 콘솔과 마찬가지로 출력 창에 표시합니다.줄 쓰기().

디버그의 분명한 장점.WriteLine()은 릴리스 빌드에서 오버헤드를 생성하지 않고 호출이 효과적으로 제거된다는 것입니다.그러나 복합 형식을 지원하지 않으므로 String이 필요합니다.형식()을 지정합니다.디버그 추적의 경우 디버그 클래스를 선택해야 합니다.

콘솔을 사용하는 목적이 무엇인지 확인합니다.WriteLine은 디버깅 전용이므로 Debug를 사용하는 것이 좋습니다. 쓰기.

콘솔 응용프로그램에서 사용자에게 메시지를 표시하려면 콘솔을 사용합니다. 쓰기.

Debug.WriteLine은 응용 프로그램을 디버깅하기 위한 목적으로만 사용됩니다.릴리스 모드에서는 디버그 문이 무시됩니다.

콘솔 응용 프로그램의 또 다른 용도는 전용 어셈블리를 테스트하는 것입니다.컴파일된 DLL 버전을 테스트하기 위해 일종의 GUI 테스트 하네스를 생성하는 기존의 접근 방식 대신, DLL을 콘솔 응용 프로그램으로 다시 빌드하고 콘솔과 입출력할 수 있습니다.저는 이 기술이 GUI 테스트 하네스를 만드는 데 시간을 소비하는 것보다 더 빠르다는 것을 알게 되었습니다.

언급URL : https://stackoverflow.com/questions/3012822/whats-the-difference-between-console-writeline-vs-debug-writeline

반응형