C#编程之预处理器指令
白羽 2018-07-10 来源 :网络 阅读 1210 评论 0

摘要:本文将带你了解C#编程之预处理器指令,希望本文对大家学C#/.Net有所帮助。


C#的预处理器指令很容易识别,你看到了#,就能认出它们。

  它和其他的命令有什么区别呢?

  区别在于这些命令从来不会转化为可执行代码的命令,但是会影响编译过程的各个方面。

  它用来做什么呢?

  当计划发布两个版本的代码的时候。即基本版和拥有更多版本的企业版,就可以用到预处理器指令。

  在编译基本版的时候,使用预处理指令会禁止编译器编译与额外功能相关的代码。

  另外,在编写提供调试信息的代码时,也可以使用预处理器指令。

  下面介绍预处理器指令的功能:

#define和#undef

#define用法:  #define Debug

  Debug可以看做是声明的一个变量,但此变量没有真正的值,仅存在。

  #define单独用没什么意义,一般是和#if结合使用。

#undef用法:   #undef Debug

  作用就是删除Debug的定义。如果Debug符号不存在,这条指令就没有任何作用。如果Debug符号存在,则之前的#define就没有作用。

  #define与#undef声明必须放在C#源文件的开头位置,即程序集的引用的上方。

#if,#elif,#else和#endif

下面来看一个例子

View Code

 

  #elif(=else if)和#else指令可以用在#if中,和C#中的if,else if,else含义相同。

  #if和#elif支持一组逻辑运算符"!","==","!="和"||",如果符号存在,则为true。

  #if DebugB && DebugA  //当Debug与DebugA同时存在才会执行

#warning和#error

当编译器遇到这两条指令时,会分别产生警告和错误。如果编译器遇到#warning指令,会显示该指令后的文本,之后继续编译。

  如果遇见#error指令,也会显示指令后面的文本。但会立刻退出编译,不会产生IL代码。(其实和编译器的警告和错误意义相同)

View Code

 

  下图为放开#error注释:

 

#region和#endregion

  这两条指令,大家应该非常熟悉,作用就是代码缩进和指定该代码块的名称,使得代码可以更好的布局。详细用法可以参照报表系列的代码。

#line

  这条指令很少用到。作用就是:如果代码在编译之前,要使用某些软件包改变输入的代码,就可以使用它。

(其实就是更改代码的行号)

#pragma warning

  此指令可启用或禁用某些警告。

  用法:  #pragma warning disable warning-list 
#pragma warning restore warning-list

例子:

View Code

#pragma checksum

作用是生成源文件的校验和,以帮助调试 ASP.NET 页。

   用法:  #pragma checksum "filename" "{guid}" "checksum bytes"

              filename"               要求监视更改或更新的文件的名称。                

              "{guid}" 文件的全局唯一标识符 (GUID)。                

              "checksum_bytes"  十六进制数的字符串,表示校验和的字节。必须是偶数位的十六进制数。

奇数位的十六进制数字会导致编译时警告,然后指令被忽略。           

    例子:

View Code

 


以上就介绍了C#.NET的相关知识,希望对C#.NET有兴趣的朋友有所帮助。了解更多内容,请关注职坐标编程语言C#.NET频道!


本文由 @白羽 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程