C#

C# define 전처리기 지시문 및 상수(Constants) 클래스

sheepone 2021. 6. 25. 10:08
반응형
#define VC2017 //기호를 정의
//#undef VC2017 //기호 정의를 취소
#define TEST 
using System;

namespace ConsoleApp9
{
    class Program
    {
        static void Main(string[] args)
        {
            #if (VC2017)
            {
                Console.WriteLine("Visual Studio 2017"); 
                //output : Visual Studio 2017
            }
            #endif
            
            #if (DEBUG)
            {
                Console.WriteLine("DEBUG MODE"); 
                //output : DEBUG MODE
            }
            #else
            {
                Console.WriteLine("RELEASE MODE");
            }
            #endif

            #if (!TEST)
            {
                Console.WriteLine("!TEST");
            }
            #elif (TEST)
            {
                Console.WriteLine("TEST"); 
                //output : TEST
            }
            #else
            {
                Console.WriteLine("else");
            }
            #endif
            {
                Console.WriteLine("endif"); 
                //output : endif
            }
            Console.ReadLine();
        }
    }
}
output
Visual Studio 2017
DEBUG MODE
TEST
endif

유의사항
맨 윗줄에 써야 적용

 

디버그 상수값 정의위치

Properties - 빌드 - 일반 - DEBUG 상수 정의

 

값선언이 필요한 경우는 상수(Constants) 클래스 사용

using System;
using System.Globalization;

namespace ConsoleApp9
{
    class Program
    {
        static class define
        {
            public const string sProgramName = "define" ;
            public const string sKorean      = "ko-KR"  ;
        }
        
        static void Main(string[] args)
        {
            Console.WriteLine("Program name : " + define.sProgramName); 
            //output : Program name : define

            string sCurrentCulture = CultureInfo.CurrentCulture.Name;
            if(define.sKorean == sCurrentCulture)
            {
                Console.WriteLine("CurrentCulture : Korean"); 
                //output : CureentCulture : Korean
            }
            Console.ReadLine();
        }
    }
}
반응형