C# 预处理指令

2017-09-27  本文已影响29人  大魔王是本人

不会转化为可执行代码中的命令,但会影响编译过程的各个方面。

1.#if

当编译器遇到#if 语句后,将先检查相关的符号是否存在,如果符号存在,就编译#if 子句中的代码。否则,编译器会忽略所有的代码,直到遇到匹配的#endif 指令为止。

一般是在调试时定义符号DEBUG,把与调试相关的代码放在#if 子句中。在完成了调试后,就把#define 语句注释掉,所有的调试代码会奇迹般地消失,可执行文件也会变小,最终用户不会被这些调试信息弄糊涂(显然,要做更多的测试,确保代码在没有定义DEBUG 的情况下也能工作)。

2.#define

#define必须定义在所有using命名空间前面;

除#if外还可使用[Conditional("Debug")]

上一篇下一篇

猜你喜欢

热点阅读