C#预处理指令

来源:互联网 发布:域名跟空间怎么绑定 编辑:程序博客网 时间:2024/06/01 22:07

1.预处理指令

C#中有许多名为“预处理器指令”的命令。这些命令从来不会转化为可执行代码中的命令,但会影响编译过程的各个方面

:#region name
:#endregion 可以用来进行代码分块。
_____________________________-
还有几对不太常用的
:#define symbol 定义一个变量名。该变量名如果存在,这个指令就没有意义
:#undef symbol 删除一个变量名,如果这个变量名不存在,这个指令就没有意义
______________________________-
:#if symbol [operator symbol2]…
:#else
:#elif symbol [operator symbol2]
:#endif
_____________________________-
:#warning text text 指在编译器输出中的警告文字
:#error text text 指在编译器输出中的错误信息
_____________________________-
:#line number [file]
:#pragma
_____________________________-
:关于#define要说明几点,#define DEBUG 等效于不写这句话,你要不定义它才一定要写上#undefin DEBUG


1.用法:

#define 的用法: #define DEBUG //定义一个变量(存在)
 和#if DEBUG 一起用的时候,存在即为true,不存在为false

#undef 正好相反—— 它删除符号的定义: #undef DEBUG (不存在)
  
必须把#define 和#undef 命令放在C#源文件的开头位置,在声明要编译的任何对象的代码之前。

#define 本身并没有什么用,但与其他预处理器指令(特别是#if)结合使用.
—-条件编译

int DoSomeWork(double x)
{
// do something
#if DEBUG
Console.WriteLine(“x is ” + x);
#endif
}

2.#if 和#elif 还支持一组逻辑运算符“!”、“==”、“!=”和“||”。如果符号存在,就被认为是true,否则为false

#if W2K && (ENTERPRISE==false)
// if W2K is defined but ENTERPRISE isn’t

3.如果编译器遇到#warning 指令,会给用户显示#warning 指令后面的文本,之后编译继续进行。
如果编译器遇到#error 指令,就会给用户显示后面的文本,作为一条编译错误消息,然后会立即退出编译,不会生成IL 代码。

#if DEBUG && RELEASE
#error “You’ve defined DEBUG and RELEASE simultaneously!”
#endif
#warning “Don’t forget to remove this line before the boss tests > the code!”
Console.WriteLine(“I love this job.“);

0 0
原创粉丝点击