C#_预处理指令

这篇具有很好参考价值的文章主要介绍了C#_预处理指令。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.

        预处理器指令指导编译器在实际编译开始之前对信息进行预处理。

        所有的预处理器指令都是以 # 开始。且在一行上,只有空白字符可以出现在预处理器指令之前。预处理器指令不是语句,所以它们不以分号(;)结束。

        C# 编译器没有一个单独的预处理器,但是,指令被处理时就像是有一个单独的预处理器一样。

        在 C# 中,预处理器指令用于在条件编译中起作用。与 C 和 C++ 不同的是,它们不是用来创建宏。一个预处理器指令必须是该行上的唯一指令

#define  //它用于定义一系列成为符号的字符。

#undef   //它用于取消定义符号

#if     //它用于测试符号是否为真。

#else    //它用于创建复合条件指令,与 #if 一起使用。

#elif    //它用于创建复合条件指令。

#endif    //指定一个条件指令的结束。

#line     //它可以让您修改编译器的行数以及(可选地)输出错误和警告的文件名。

#error    //它允许从代码的指定位置生成一个错误。

#warning   //它允许从代码的指定位置生成一级警告。

#region    //它可以让您在使用 Visual Studio Code Editor 的大纲特性时,指定一个可展开或折叠的代码块。

#endregion    //它标识着 #region 块的结束。

2.

#define 预处理器指令创建符号常量。

#define 允许您定义一个符号,这样,通过使用符号作为传递给 #if 指令的表达式,表达式将返回 true。它的语法如下:

#define symbol
#define PI 
using System;
namespace PreprocessorDAppl
{
   class Program
   {
      static void Main(string[] args)
      {
         #if (PI)
            Console.WriteLine("PI is defined");
         #else
            Console.WriteLine("PI is not defined");
         #endif
         Console.ReadKey();
      }
   }
}

3.条件指令

       我们可以使用 #if 指令来创建一个条件指令,条件指令用于测试符号是否为真。如果为真,编译器会执行 #if 和下一条指令之间的代码。

条件指令的语法:#if  symbol   [operator symbol]

下方是一个演示条件指令的例子:

#define DEBUG
#define VC_V10
using System;
public class TestClass
{
   public static void Main()
   {

      #if (DEBUG && !VC_V10)
         Console.WriteLine("DEBUG is defined");
      #elif (!DEBUG && VC_V10)
         Console.WriteLine("VC_V10 is defined");
      #elif (DEBUG && VC_V10)
         Console.WriteLine("DEBUG and VC_V10 are defined");
      #else
         Console.WriteLine("DEBUG and VC_V10 are not defined");
      #endif
      Console.ReadKey();
   }
}
输出的结果:DEBUG && VC_VC10  are  define

以上为常见的、常用的预处理指令

下方为不常用的预处理指令,用到再去了解即可

#line     //它可以让您修改编译器的行数以及(可选地)输出错误和警告的文件名。

#error    //它允许从代码的指定位置生成一个错误。

#warning   //它允许从代码的指定位置生成一级警告。

#region    /* 
              它可以让您在使用 Visual Studio Code Editor 的大纲特性时,
              指定一个可展开或折叠的代码块。
           */

#endregion    //它标识着 #region 块的结束。

@www.runoob.com 文章来源地址https://www.toymoban.com/news/detail-698157.html

到了这里,关于C#_预处理指令的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【.NET Core】C#预处理器指令

    预处理器指令 是指编译器在实际编译开始之前对信息进行预处理。通常是简化源程序在不同的环境中运行。尽管编译器没有单独的预处理器,但是本文所说的指令的处理方式与有预处理器时一样。可以使用这些指令来帮助条件编译。不同于C和C++指令,不能使用这些指令来创

    2024年01月17日
    浏览(41)
  • unity的C#学习——预处理指令、异常处理和文件的输入输出

    C# 中的预处理器指令是用来 指示编译器在 编译代码之前 执行一些预处理操作 的特殊指令。预处理器指令以 井号 # 开始,并且必须出现在代码的最外层,不能包含在方法或类的内部。 #define 指令用于定义一个符号常量。符号常量可以在代码中使用 #if 或 #elif 指令进行条件编

    2024年03月22日
    浏览(41)
  • C# 图解教程 第5版 —— 第24章 预处理指令

    ​ C# 中没有实际的预处理程序,“预处理”指令由编译器处理,但这个术语被保留了下来。 预处理指令必须和 C# 代码在不同的行。 预处理指令不需要以分号结尾。 包含预处理指令的每一行必须以“#”字符开始。 “#”字符前可以有空格。 在“#”字符和指令之间可以有空格

    2024年01月17日
    浏览(34)
  • 【C语言】程序环境和预处理|预处理详解|定义宏(下)

    主页:114514的代码大冒 qq:2188956112(欢迎小伙伴呀hi✿(。◕ᴗ◕。)✿ ) Gitee:庄嘉豪 (zhuang-jiahaoxxx) - Gitee.com 文章目录 目录 文章目录 前言 2.5带副作用的宏参数 2.6宏和函数的对比 3#undef ​编辑 4 命令行定义 5 条件编译 6 文件包含 总结 咱们书接上回 2.5带副作用的宏参数 先来

    2024年01月17日
    浏览(59)
  • C语言——程序环境和预处理(再也不用担心会忘记预处理的知识)

    先简单了解一下程序环境,然后详细总结翻译环境里的编译和链接,然后在总结编译预处理。 在 ANSI C 的任何一种实现中,存在两个不同的环境 翻译环境:这个环境中源代码被转换为可执行的机器指令。 执行环境:执行二进制代码。 计算机如何执行二进制指令? 我们写的C语

    2024年02月09日
    浏览(57)
  • 【C语言】预处理

    在ANSI C的任何一种实现中,存在两个不同的环境。 第1种是翻译环境,在这个环境中源代码被转换为可执行的机器指令。 第2种是执行环境,它用于实际执行代码。 1.翻译环境 组成一个程序的每个源文件通过编译过程分别转换成目标代码 每个目标文件由链接器(linker)捆绑在

    2024年02月17日
    浏览(70)
  • 详解C语言—预处理

    目录 一、预处理 1、预定义符号介绍 2、预处理指令 #define #define 定义标识符:  #define 定义宏: #define 替换规则 3、预处理操作符# 4、预处理操作符## 5、带副作用的宏参数 6、宏和函数对比 二、命名约定 三、预处理指令 #undef 四、命令行定义 五、条件编译  1、单分支#if:

    2024年02月08日
    浏览(57)
  • C语言【预处理器】

    1、一些关于预处理的知识 ​C代码中,一般带 # 的都是预处理指令,包括 宏替换、文件包含、条件编译 等。 ​为兼容一些老编译器, # 前后一般不写空格 ​预处理指令后面不加分号。 2、宏定义 3、文件包含 ​自定义头文件,用\\\" \\\" 。 引号里填相对路径或绝对路径。基于当

    2024年02月05日
    浏览(45)
  • 【C语言】预处理详解

             本文目录 1 预定义符号 2 #define 2.1 #define 定义标识符 2.2 #define 定义宏 2.3 #define 替换规则 2.4 #和## 2.5 带副作用的宏参数 2.6 宏和函数对比 2.7 命名约定 3 #undef 4 命令行定义 5 条件编译 6 文件包含 6.1 头文件被包含的方式 6.2 嵌套文件包含 这些预定义符号都是语言内置

    2024年02月14日
    浏览(44)
  • C语言·预处理详解

            C语言设置了一些预定义符号,可以直接使用,预定义符号也是在预处理期间处理的                 __FILE__  进行编译的源文件                 __LINE__  文件当前的行号                 __DATE__  文件被编译的日期                 _

    2024年01月21日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包