C#预处理指令的使用

一、使用原因及目的:1、部分编译(或者称为条件编译)

                                        使用预处理指令可以禁止编译器编译代码的某一部分。

                                        2、调试信息

二、预处理指令的影响:C#预处理指令从来 不会转化为可执行代码中的命令,但会影响编译器的各个方面。

三、预处理指令的使用

1、预处理指令以符号#开头(不用分号结束,一般一行只有一条命令)

2、预处理指令的用法:

#define  告诉编译器存在指定名称的符号。☆☆☆

如:#define Demo   

#undef 删除符号的定义

如:#undef Demo


#if、#elif(=else if)、#else、#endif 告诉编译器是否需要编译某个代码块 ☆☆☆

譬如你想在调试的时候走一些特定的数据,就可以用这些编译属性。

如:#if Demo

    Do Something

#endif

其中Demo来源于上文#define定义的符号,只有当Demo这个符号被定义了才会走#if这部分语句。

如果定义多个符号就可以使用#elif语句

如:#define Demo

        #define Demo1

       #define Demo2

       #if  Demo

DoSomething

            #if Demo1==true

        DoSomething1

           #endif

      #elif Demo2

    DoSomething2

      #endif

是不是觉得和if...else语句块很像?上文有个#if Demo1==true,相当于判断Demo1这个符号是否被#define定义,如果被定义值为true否则false。


#warning、#error 提示警告和错误信息 ☆☆☆

如果编译器遇到#warning指令就会显示#warning指令后面的文本,之后编译继续进行。

如果编译器遇到#error指令就会显示后面的文本作为编译错误消息,然后立即退出编译。

注:#warning很有用啊,有时候调试代码你会给某个变量赋一个定值(更推荐使用VS的immediate Window),这时候你放一个#warning在那里,就不会在代码提交的时候忘记注释。


#region、#endregion 用于把一段代码标记为有指定名称的代码块,主要为了布局。当某个类代码量很大的时候一般情况下使用这个都把代码折叠起来。☆☆☆☆

如:#region This Method Do Something

                 //Method

        #endregion


#line用于改变编译器在警告和错误信息中显示的文件名和行号信息 

#pragma 用于抑制或还原指定的编译警告(不建议使用) 

譬如使用Page.RegisterStartupScript方法注册JS方法到页面会提示方法已过时的警告信息,就可以使用这条指令不显示这条警告

#pragma warning disable 169(警告信息的编号)










你可能感兴趣的:(C#开发)