코드 제외. 포함 #if, #elif, #else , #endif
C# 컴파일러는 해당 기호가 정의되거나 정의가 참일 때만 #if, #endif 사이의 코드를 컴파일한다.
#if ONPC
System.Console.Clear();
#endif
C/C++과 달리 숫자 값을 할당할 수 없다.
#if (NET6_0_OR_GREATER || NETSTANDARD2_0_OR_GREATER)
Console.WriteLine("Using .NET 6+ or .NET Standard 2+ code.");
#elif
Console.WriteLine("Using older code that doesn't support the above .NET versions.");
#endif
전처리 기호 정의 #define, #undef
#define HICSHAP
#define으로 기호를 사전에 정의한다. #if 지시문으로 값을 전달받아 사용할 수 있다.
#define VERBOSE
#if VERBOSE
Console.WriteLine("Verbose output version");
#endif
#define 지시문은 파일에서 지시문이 명령을 사용하기 전에 선언되어야 한다. #undef는 #define에서 정의한 기호를 해제할 수 있다.
영영 정의 #regine #endregin
#region : 영역 정의 시작
#endregion : 영역 정의 종료
#region 을 사용하면 코드 편집기에서 코드 블록을 확장 및 축소할 수 있는 코드 블록을 지정할 수 있다.
#region 사용 예
더보기
#region BT Seting
BTNode SettingBT() => new SelectorNode
(
new List<BTNode>
{
new ActionNode(CheckDead),
new SequenceNode // 탐지 및 추적
(
new List<BTNode>
{
new ActionNode(CheckDetectEnemy),
new ActionNode (ChaseToTarget),
}
),
new SelectorNode // 대기 및 순찰
(
new List<BTNode>
{
new ActionNode(DoWaiting),
new ActionNode(DoPatrol),
}
),
}
);
#endregion
오류 및 경고 정보 #error, #warning, #line
코드에 잠재적인 문제를 표시하고 싶을 때 사용한다.
#error : 지정된 메시지를 사용하여 컴파일러 오류 생성
#warnig : 지정된 메세지를 사용하여 컴파일러 경고 생성
#line : 컴파일러 메시지를 사용하여 출력된 줄 번호 변경
#error Deprecated code in this method.
#line 지시문은 C# 컴파일러에서 에러나 경고를 보고하는 줄 번호를 제어한다.
경고 끄기 #pragam
특정한 경고를 무시하고 싶을 때 사용한다.
#pragma pragma-name pragma-arguments