#if#elif#endifの使用------条件コンパイル(conditional compilation)

1175 ワード


#ifおよび#else、#elif、#endif、#defineおよび#undef命令を使用して、1つまたは複数のシンボルからなる条件に基づくコードを含むか除外することができる
一般条件コンパイルでは、デバッグ時に結果を出力してプログラムが正しいかどうかを判断する必要がありますが、パブリッシュ時にこれらの結果を出力する必要はありません.あるいはプログラムはあるバージョンで試用機能を発表したが、次のバージョンでこの機能を一時的に削除するには、この条件で制御することができる.
 
  
#define DEBUG
#define MYTEST
using System;
namespace ConsoleApplication1
{
    public class Class1
    {
        public void Display()
        {
#if (DEBUG && !MYTEST)
            Console.WriteLine("DEBUG is defined");
#elif (!DEBUG && MYTEST)
        Console.WriteLine("MYTEST is defined");
#elif (DEBUG && MYTEST)
            Console.WriteLine("DEBUG and MYTEST are defined");
#else
        Console.WriteLine("DEBUG and MYTEST are not defined");
#endif
        }
    }
}

using System;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Class1 cl = new Class1();
            cl.Display();
#if DEBUG
            Console.WriteLine("123");
#endif
        }
    }
}


結果
DEBUG and VC_V7 are defined
123