#if、#else、#elif、#endif
这组指令主要用于在调试环境下代码进行条件编译时,用于控制编译器对某个代码段是否进行编译。
#define release
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Linq.Expressions;
using System.Dynamic;
using System.ComponentModel;
namespace ConsoleApplication
{
class Program
{
static void Main(string[] args)
{
#if debug
Console.WriteLine("It's debug.");
#elif release
Console.WriteLine("It's release.");
#endif
Console.ReadLine();
}
}
}
#define debug
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Linq.Expressions;
using System.Dynamic;
using System.ComponentModel;
using System.Diagnostics;
namespace ConsoleApplication
{
class Program
{
static void Main(string[] args)
{
ShowDebug();
Console.ReadLine();
}
[Conditional("debug"), Conditional("release")]
static void ShowDebug()
{
Console.WriteLine("It's debug or release.");
}
}
}
#define、#undef
这两个指令分别用于定义和取消定义一个给定名词的符号,该符号可以应用#if指令作为判断条件,和其他指令搭配才有意义。
#warning、#error
#warning指令用于发出警告信息,#error指令用于发出错误信息
#define TRACE_WARNING
#define TRACE_ERROR
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Linq.Expressions;
using System.Dynamic;
using System.ComponentModel;
using System.Diagnostics;
namespace ConsoleApplication
{
class Program
{
static void Main(string[] args)
{
#if TRACE_WARNING
#warning "别忘了还有事情没有处理。"
#endif
#if TRACE_ERROR
#error "这里是错的,注意哦"
#endif
Console.WriteLine("asfsdfsdfsadf");
Console.ReadLine();
}
}
}