C#预处理指令

C#当中的预处理机制:

  #define #undef:

#define类似于声明一个变量,但是这个变量没有真正的值,只是存在而已。代码没有任何的意义仅仅是在编译器编译代码的时候存在!

#undef相反,删除符号定义:如果这个符号不存在,这句话就没有任何意义,如果这个符号存在,#define也不起作用!

注意声明的时候需要是在第一行代码处声明且是不需要分号结尾的,不能放在代码的中间!

 

#if,#elif,#else,#endif

这些指令告诉编译器是否需要编译某个代码块,考虑下面的方法:

Int DosomeWork(double x)

{

       //do something

#if DEBUG

  Console.Writeline(“X is {0}”,X);

#endif

}

这段代码的意思是说只有定义了#define DEBUG才会执行,也就是说我们在编写的时候在#if DEBUG#endif里面添加我们的调试代码,完成调试以后把#define语句去掉就可以了,这个东西在c++里面是非常常见的,叫做条件编译!

#elif=#else +#if可以和#if嵌套使用注意他们是必须以#endif来结尾的。

 

 

#warning #error:

当编译器遇见他们的时候就会分别产生警告和错误,以及给用户显示#warning后面的文本信息,并且继续进行,如果编译器遇见#error指令,就会给用户后面的文本,作为一个编译错误信息,然后立即退出编译,不会生成IL代码.

 

#if DEBUG && RELEASE

       #error “You have defined debug and release simultaneously!”

#endif

 

#warning “Don’t forget to remove this line before the boss tests the code!”

       Console.writeline(“I have finished the job !”);

 

 

#region #endregion 指令

这两个指令的组合-可以把一段代码标记为给定名称的一个块,可以在例如Visual Studio中可以被识别,更好的布局,实际上给代码的作用是没有任何的,仅仅是为了更好的布局。增加程序的可读性!

#pragma

#pragma指令可以抑制或者是恢复指定的编译警告。和命令行选项不同,#pragma指令可以在类或者方法上执行,对抑制警告的内容和抑制的时间进行更加精细的控制。下面的例子:

#pragma warning disable 169

Public class myclass

{

       Int neverUsedField;

}

#pragma warning restore 169

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值