C#-预处理指令

C#预处理指令

       预处理指令的开头都有#.使用预处理指令可以禁止编译器编译代码的某一部分.如果计划发布两个版本的代码,就可以使用预处理指令.

 

#define #undef

       #define DEBUG    它告诉编译器存在给定名称的符号. DEBUG有些类似于声明一个变量,但它并没有真正的值,只是存在而已.

#undef DEBUG     正好相反,它删除符号的定义.

必须将#define#undef放在C#源代码的开头,在声明要编译的任何对象的代码之前. #define本身并没什么用,当它与其它预处理指令(特别是#if)结合使用时,它的功能就非常强大了.

 

#if,#elif,#else#endif

       这些指令告诉编译器是否要编译某个代码块.下面的例子说明了,只有前面的#define定义了DEBUG才能执行里面的内容.否则,编译器忽略里面的所有内容,(忽略)到见到#endif为止.

       一般调试时可以使用这招(C++很普遍),完成调试后,就将#define注释掉就OK.      

        public void Show()

        {

            #if DEBUG

                Console.WriteLine("DEBUG have defined...");

            #endif

}

       #if #endif 支持逻辑运算符.如果存在(#define),就认为是true,否则是false.

#if (DEBUG==false)

 

#warning #error

       编译器遇到#warning,会给用户显示#warning后面的文本,之后继续编译;

       编译器遇到#error,会给用户显示#error后面的文本,之后立即退出编译.

#if DEBUG

            #error "You have defined DEBUG";

        #endif

 

        #if DEBUG

            #warning "You have defined DEBUG";

        #endif

 

#region #endregion

       不做过多解释了.

 

#line

用于改变编译器在警告我错误信息中的文件名和行号.如果编译前你导入了某些软件包,当编译出错后,出错代码的行号就和实际中不符.使用#line即可解决此问题.

 

#pragma

用于抑制恢复指定的编译警告.下例中,#pragma…disable#pragma…restore之间的部分禁止字段使用警告.

#pragma warning disable 169

public class MyClass

{  

    int num;

}

#pragma warning restore 169

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值