Computer >> 컴퓨터 >  >> 프로그램 작성 >> C#

#if DEBUG란 무엇이며 C#에서 사용하는 방법은 무엇입니까?

<시간/>

Visual Studio 디버그 모드와 릴리스 모드에서는 .Net 프로젝트를 빌드하기 위한 다른 구성입니다.

.Net 프로젝트를 단계별로 디버깅하기 위해 디버그 모드를 선택하고 어셈블리 파일(.dll 또는 .exe)의 최종 빌드를 위해 릴리스 모드를 선택합니다.

디버그 모드는 소스 코드와 생성된 명령어 간의 관계가 더 복잡하기 때문에 생성하는 바이너리를 최적화하지 않습니다.

이를 통해 중단점을 정확하게 설정할 수 있고 프로그래머가 코드를 한 번에 한 줄씩 단계별로 실행할 수 있습니다.

프로그램의 디버그 구성은 디버거가 소스 코드의 위치를 ​​파악하는 데 도움이 되는 전체 기호 디버그 정보로 컴파일됩니다.

프로그램의 릴리스 구성에는 기호 디버그 정보가 없으며 완전히 최적화되어 있습니다.

빌드 구성을 변경하려면

빌드 메뉴에서 구성 관리자를 선택한 다음 디버그 또는 릴리스를 선택합니다.

또는

도구 모음의 솔루션 구성 목록에서 디버그 또는 릴리스를 선택합니다.

#if 디버그 내부에 작성된 코드는 코드가 디버그 모드 내에서 실행 중인 경우에만 실행됩니다.

코드가 릴리스 모드에서 실행 중인 경우 #if Debug가 거짓이고 이 안에 있는 코드를 실행하지 않습니다.

예시

class Program {
   static void Main() {
      #if DEBUG
      Console.WriteLine("You are in debug");
      #endif
      Console.ReadKey();
   }
}

프로그램이 디버그 모드에서 실행 중인 경우 If 블록은 true를 반환합니다.

그리고 "당신은 디버그 중입니다"를 출력합니다.

프로그램이 디버그 모드가 아니면 If Debug return false