C#中的预编译指令介绍
1、#define和#undef
用法:
#define DEBUG
#undef DEBUG
#define告诉编译器,我定义了一个DEBUG的一个符号,他类似一个变量,但是它没有具体的值,可以将它看为一个符号而已。#undef就是删除这个符号的定义。如果符号DEBUG没定义过,则#undef不起作用,否则#define不起作用。二者都必须放在源代码之前。二者的顺序看代码的顺序:
#define DEBUG
#undef DEBUG
这样的话,DEBUG是没有定义的,如果二者换个顺序,编译器就认为DEBUG被定义了
2、#if、#elif、#else、#endif
这个告诉编译器进行编译代码的流程控制。考虑下面代码:
#if DEBUG
Console.Write("debug");
#elif RELEASE
Console.Write("realse");
#else
Console.Write("other");
#endif
以上代码就是说如果定义了DEBUG则输出debug,定义了RELEASE,则输出realse,否则输出other。如果定义了DEBUG和REALSE会怎么样呢?各位可以自己试一下。
3、#warning、#error
通过这两个指定可以告诉编译器,出一个警告还是错误信息。除了错误信息以后,编译将停止
参考下面的代码
#if DEBUG ------〉该DEBUG如果选中当前状态为DEBUG,则这个默认为#define
#warning “现在是Ddbug状态”
#elif RELEASE ------〉如果选中release状态的话,这个确没有默认,不知道我试验的对不对
#warning “现在是Realse状态”
#else
#error“并清楚什么状态”
#endif
4、#region 和#endregion
这个两个用来组成代码块
5、#line (这个指定的使用不太明白,参考MSDN)
这个指令可以改jian变编译器在警告和错误信息中显示的文件名和行号信息,用#line default把行号恢复为默认的行号。
下面的示例说明如何报告与行号关联的两个警告。#line 200 指令迫使行号为 200(尽管默认值为 #7)。另一行 (#9) 作为默认 #line 指令 的结果跟在通常序列后。
// preprocessor_line.cs
public class MyClass2
{
public static void Main()
{
#line 200
int i; // CS0168 on line 200
#line default
char c; // CS0168 on line 9
}
}
示例 2
下面的示例说明调试器如何忽略代码中的隐藏行。运行此示例时,它将显示三行文本。但是,当设置如示例所示的断点并按 F10 键逐句通过代码时,您将看到调试器忽略了隐藏行。另请注意,即使在隐藏行上设置断点,调试器仍会忽略它。
// preprocessor_linehidden.cs
using System;
class MyClass
{
public static void Main()
{
Console.WriteLine("Normal line #1."); // Set a break point here.
#line hidden
Console.WriteLine("Hidden line.");
#line default
Console.WriteLine("Normal line #2.");
}
}
C#中的预编译指令介绍相关推荐
- C/C++常用预编译指令介绍
目录 1.#include指令 2.#define和#undef指令 3.#ifdef.#ifndef.#else.#elif和#endif指令 4.#error指令 5.编译器预置宏__FILE__ ...
- 在Silverlight 和WPF中使用预编译指令 if..else..endif (译)
下面的是中文翻译,有些扯淡的话就略过了,想看原文,请到这里 对于预编译指令,作者分成了几篇文章来讲解的.鉴于翻译后的文字较少,我把作者的几篇合为了一篇.下面进入正题. 一.总揽: 想要编写特定平台的代 ...
- C#基础13:预编译指令
PS:注释和讲解全在代码中 1. 预编译指令 预编译指令也叫预处理指令,在程序正式编译之前执行 这些指令不会转化为可执行代码中的命令,但是会影响编译过程的各个方面 具体例子如代码: using Sys ...
- c语言中条件编译相关的预编译指令
一. 内容概述 本文主要介绍c语言中条件编译相关的预编译指令,包括#define.#undef.#ifdef.#ifndef.#if.#elif.#else.#endif.defined. 二. ...
- C语言的预编译,程序员必须懂的知识!【预编译指令】【预编译过程】
由"源代码"到"可执行文件"的过程包括四个步骤:预编译.编译.汇编.链接.所以,首先就应该清楚的首要问题就是:预编译只是对程序的文本起作用,换句话说就是,预编译 ...
- c语言if多条件并列_C/C++编程笔记:C语言预编译指令—条件编译,零基础推荐收藏
一. 内容概述 本文主要介绍c语言中条件编译相关的预编译指令,包括#define.#undef.#ifdef.#ifndef.#if.#elif.#else.#endif.defined. 二.条件编 ...
- 几个预编译指令的用法
*.几个预编译指令的用法 # 字符串化运算符,其主要效果是把参数的名字转换为字符串. Example: //1. *.h中定义 #defineSTRINGLIZE(ivalue) #i ...
- 预编译指令与相关宏小结
//======================================================================== //TITLE: // 预编译指令与相关宏小 ...
- C中的预编译宏定义-转
C中的预编译宏定义 2009-02-10 作者: infobillows 来源:网络 在将一个C源程序转换为可执行程序的过程中, 编译预处理是最初的步骤. 这一步骤是由预处理器(preprocesso ...
最新文章
- 汇总运行在Hadoop YARN上的开源系统
- JPA 2 | EntityManagers,事务及其周围的一切
- 华为云服务怎么弄金卡会员_万科牵手华为终端云服务,共建松山湖智慧商圈
- HTML+CSS+JS实现 ❤️透明等离子球ui特效❤️
- 670. Maximum Swap 允许交换一个数 求最大值
- 数据量太大?用数据库水平切分搞定!
- wpf中内容包含在border中_Excel中创建包含注释的数学公式
- fseek函数、ftell函数、rewind函数详解
- 机器学习导论(一)绪论
- Android简单实现高德地图显示及定位
- [分析力学]解题思路 - 最小作用量原理
- 你会在本地搭建 Web 版 VS Code 吗,看完这一篇你就能轻松实现了!
- linux下通过inode删除文件
- (一)传说中“哈佛最受欢迎的课程”
- 理论篇:如何理解51%攻击
- 从一道面试题认识函数柯里化
- WebAPI编程_DOM
- 阻碍NFT进一步发展的绊脚石都有哪些?从6个方面切入分析
- 12864与24C04的原理和使用方法——以电子密码锁为例(下篇)
- SCOUT 薄膜分析软件
热门文章
- java基本数据类型_Java面试题Java中有几种基本数据类型?它们分别占多大字节?...
- java .classpath配置_轻松玩转Java配置的Classpath
- 怎么在CSDN中写微信公众号推文?
- 如何打赢一场唯快不破的比赛,看看他们的绝招
- 械模拟计算器 - 计算尺
- 人工智能创意赛复选赛成绩单
- 低压差降压稳压电路设计
- python模板是什么意思_什么是最快的Python模板系统?
- hellowolrd 的系统调用
- java外观设计修改_Java设计模式之外观模式和装饰器模式的设计(精选)