2011-01-23 7 views
4

에서 #endif 다음은 내가 MSDN의 샘플 코드를 가지고 내가 코드 구문을 발견했습니다 #else, #endif?의 #if, #else, 전에 본 적이 C# 소스 코드

그리고 #if InMemDB은 무엇입니까?

InMemDB은 무엇입니까? 변수?

+0

다른 답변은 명시된 바와 같이 .Net 4.0에서는 새로운 기능이 아니기 때문에 C++ 이후로 존재했음을 알아야 할 수도 있습니다. –

+0

그는 C/C++ 이후로 전처리 지시어가 존재한다고 말하고 있습니다. C#은 C++을 기반으로하지 않습니다. – Amy

+0

@ 조이, @ yodaj007이 말하는 것이 옳다. 나는 여기서 유산을 의미하지는 않았다. –

답변

14

이들을 preprocessor directives이라하며 .NET 1.0 이후로 존재합니다. 그들은 InMemDB과 같은 다른 컴파일 지시문을 정의 할 수있게 해 주며,이 변수가 정의되어 있으면 컴파일러는 블록을 평가할 것인지 여부를 결정합니다. #if directive의 설명서는보다 심층적 인 개요를 제공합니다.

alt text

1

: 당신이 /define 컴파일러 옵션을 사용하거나 Visual Studio에서 프로젝트의 속성의 빌드 탭에서 조건부 컴파일 기호를를 사용할 수있는 변수를 정의하기 위해

이것들은 Framework 4의 새로운 기능이 아닙니다

이것은 개발 단계 및 테스트에 사용할 수있는 기능입니다. 다음을 선언 할 수 있습니다 :

#Define something 

다음

#if something 

하는 "경우"가 실행됩니다에있는 모든 코드. 모든 코드는 그렇지 않습니다.