Console.WriteLine ()과 Debug.WriteLine ()의 차이점은 무엇입니까?
vs 의 차이점은 무엇입니까 ?Console
.WriteLine()
Debug
.WriteLine()
Console.WriteLine 은 디버그 또는 릴리스에서 표준 출력 스트림에 씁니다. Debug.WriteLine 은 Listeners 컬렉션 의 추적 수신기에 기록 하지만 디버그에서 실행할 때만 기록합니다 . 릴리스 구성에서 응용 프로그램을 컴파일하면 Debug 요소가 코드로 컴파일되지 않습니다.
으로 Debug.WriteLine
의 모든 추적 수신기에 쓰기 청취자의 수집, 그것은이 이상 한 장소에서 출력 할 수있다 (Visual Studio를 출력 창, 콘솔, 로그 파일, 타사 응용 프로그램이 리스너를 등록하는 (나는 생각 DebugView와는 이 작업을 수행 ) 등).
Console.WriteLine()
콘솔 모드 프로그램을 의미합니다. Visual Studio 호스팅 프로세스의 멋진 기능은 콘솔이없는 프로세스를 디버깅하는 동안 Visual Studio 출력 창에 출력이 표시되도록합니다. 이는 디버깅하는 동안 매우 유용하지만 #ifdef DEBUG
릴리스 빌드를 만들 준비가되면 이 코드를 제거 (또는로 래핑)해야합니다 . 그렇지 않으면 프로그램에 불필요한 오버 헤드가 추가됩니다. 이로 인해 디버그 추적에 적합하지 않습니다.
Debug.WriteLine()
DEBUG
#defined 조건부로 빌드하면 추적 정보를 생성합니다 . 디버그 빌드에서 기본적으로 켜져 있습니다. 출력이 끝나는 위치는 app.exe.config
파일 에서 구성 할 수 있습니다 . 이 구성이 재정의되지 않은 경우 .NET은 자동으로 DefaultTraceListener
클래스 의 인스턴스를 제공합니다 . Debug.WriteLine()
Windows OutputDebugString()
API 함수가 있는 텍스트를 디버거로 보냅니다 . Visual Studio 디버거는 출력 창에 Console.WriteLine()
.
의 분명한 장점은 Debug.WriteLine()
릴리스 빌드에서 오버 헤드를 생성하지 않고 호출이 효과적으로 제거된다는 것입니다. 그러나 복합 서식을 지원하지 않으므로 필요 String.Format()
합니다. 디버그 추적의 경우 Debug 클래스를 선택해야합니다.
Console.WriteLine 사용 목적이 디버깅 전용 인 경우 Debug.WriteLine을 사용하는 것이 좋습니다 .
사용자에게 메시지를 표시하려면 Console.WriteLine 을 사용 합니다.
Debug.WriteLine은 애플리케이션 디버깅 목적으로 만 사용됩니다. 릴리스 모드에서는 디버그 문이 무시됩니다.
콘솔 애플리케이션의 또 다른 용도는 개인 어셈블리를 테스트하는 것입니다. DLL의 컴파일 된 버전을 테스트하기 위해 일종의 GUI 테스트 도구를 만드는 전통적인 접근 방식 대신 DLL을 콘솔 응용 프로그램으로 다시 빌드하고 콘솔에서 / 로의 입출력을 수행 할 수 있습니다. 이 기술이 GUI 테스트 도구를 만드는 데 시간을 보내는 것보다 빠르다는 것을 알았습니다.
'developer tip' 카테고리의 다른 글
Firebase 용 Cloud Functions로 업로드 된 파일에서 다운로드 URL 가져 오기 (0) | 2020.10.06 |
---|---|
항상 다음 정수로 반올림하는 방법 (0) | 2020.10.06 |
조각의 MapView (Honeycomb) (0) | 2020.10.05 |
방향 변경시 Fragment를 처리하는 확실한 방법 (0) | 2020.10.05 |
Python Pandas는 특정 열만 병합합니다. (0) | 2020.10.05 |