C#预处理指令-190315

目录

1.#define和#undef
2.#if、#elif、#else、#endif
3.#warning、#error
4.#region、#endregion
5.#line
6.#pragma

1.#define和#undef

使用之前应该放在源代码之前,即程序集引用的上方

#define DEBUG //定义了debug这个符号,但是没有具体的值,可以将它看成一个符号而已。
						//#define单独使用没有什么意义,一般是和#if结合使用

#undef DEBUG //删除这个符号的定义 

示例:

#define DEBUG
 int DoSw(double x)
 {
 #if DEBUG
 COnsole.WriteLine("x is"+X);
 #edif
 }

2.#if、#elif、#else、#endif

//#define DebugA
#define DebugB
using System;

namespace MyApplication
{
    class Program
    {
        static void Main(string[] args)
        {
#if DebugA
            Console.WriteLine("Hello DebugA");
#elif DebugB
            Console.WriteLine("Hello DebugB");
#else
            Console.WriteLine("Hello Debugelse");
#endif
        }
    }
}


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

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

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

3.#warning、#error

当编译器遇到这两条指令是,会分别产生警告和错误。
编译器遇到 #warning,显示指令后的文本,之后继续编译
编译器遇到 #error,显示指令后的文本,并立即退出编译,不会产生IL代码。

static void Main(string[] args)
        {
#warning "All Right?"
            Console.WriteLine("Contine...");
//#error "All Right?"
//            Console.WriteLine("Contine...");
        }

在这里插入图片描述
下图为放开error注释
在这里插入图片描述

4.#region、#endregion

作用:代码缩进和指定该代码块的名称,使得代码可以更好的布局。

5.#line

这条命令很少使用,作用:更改代码行号。

6.#pragma

#pragma:为编译器提供特殊的指令,说明如何编译包含杂注的文件。

#pragma warning:可启用或禁用某些警告。

#pragma checksum:生成源文件的校验和,以帮助调试ASP.NET页。

可以抑制或恢复指定的编译警告。与命令行选项不同,#pragma指令可以在类和方法上执行,对抑制什么警告和抑制的时间进行更精细的控制。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值