【c#教程】C# 预处理器指令

C# 预处理器指令

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

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

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

C# 预处理器指令列表

下表列出了 C# 中可用的预处理器指令:

预处理器指令

描述

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

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

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

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

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

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

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

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

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

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

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

#define 预处理器

#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();      }   }}

登录后复制

当上面的代码被编译和执行时,它会产生下列结果:

PI is defined

登录后复制

条件指令

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

条件指令的语法:

#if symbol [operator symbol]...

登录后复制

其中,symbol 是要测试的符号名称。您也可以使用 true 和 false,或在符号前放置否定运算符。

运算符符号是用于评价符号的运算符。可以运算符可以是下列运算符之一:

== (equality)

!= (inequality)

&& (and)

|| (or)

您也可以用括号把符号和运算符进行分组。条件指令用于在调试版本或编译指定配置时编译代码。一个以 #if 指令开始的条件指令,必须显示地以一个 #endif 指令终止。

下面的程序演示了条件指令的用法:

#define DEBUG#define VC_V10using 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 and VC_V10 are defined

登录后复制

 以上就是【c#教程】C# 预处理器指令的内容,更多相关内容请关注PHP中文网(www.php.cn)!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2553652.html

(0)
上一篇 2025年3月6日 06:47:26
下一篇 2025年3月6日 06:47:34

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 【c#教程】C# 命名空间(Namespace)

    C# 命名空间(Namespace) 命名空间的设计目的是为了提供一种让一组名称与其他名称分隔开的方式。在一个命名空间中声明的类的名称与另一个命名空间中声明的相同的类的名称不冲突。 定义命名空间 命名空间的定义是以关键字 namespace…

    编程技术 2025年3月6日
    200
  • 【c#教程】C# 接口(Interface)

    C# 接口(Interface) 接口定义了所有类继承接口时应遵循的语法合同。接口定义了语法合同 “是什么” 部分,派生类定义了语法合同 “怎么做” 部分。 接口定义了属性、方法和事件,这些都…

    编程技术 2025年3月6日
    200
  • 【c#教程】C# 运算符重载

    C# 运算符重载 您可以重定义或重载 c# 中内置的运算符。因此,程序员也可以使用用户自定义类型的运算符。重载运算符是具有特殊名称的函数,是通过关键字 operator 后跟运算符的符号来定义的。与其他函数一样,重载运算符有返回类型和参数列…

    编程技术 2025年3月6日
    200
  • 【c#教程】C# 多态性

    C# 多态性 多态性意味着有多重形式。在面向对象编程范式中,多态性往往表现为”一个接口,多个功能”。 多态性可以是静态的或动态的。在静态多态性中,函数的响应是在编译时发生的。在动态多态性中,函数的响应是在运行时发生的…

    编程技术 2025年3月6日
    200
  • 【c#教程】C# 继承

    C# 继承 继承是面向对象程序设计中最重要的概念之一。继承允许我们根据一个类来定义另一个类来定义一个类,这使得创建和维护应用程序变得更容易。同时也有利于重用代码和节省开发时间。 当创建一个类时,程序员不需要完全重新编写新的数据成员和成员函数…

    编程技术 2025年3月6日
    200
  • 【c#教程】C# 程序结构

    C# 程序结构 在我们学习 c# 编程语言的基础构件块之前,让我们先看一下 c# 的最小的程序结构,以便作为接下来章节的参考。 C# Hello World 实例 一个 C# 程序主要包括以下部分: 命名空间声明(Namespace dec…

    编程技术 2025年3月6日
    200
  • 【c#教程】C# 基本语法

    C# 基本语法 c# 是一种面向对象的编程语言。在面向对象的程序设计方法中,程序由各种相互交互的对象组成。相同种类的对象通常具有相同的类型,或者说,是在相同的 class 中。 例如,以 Rectangle(矩形)对象为例。它具有 leng…

    编程技术 2025年3月6日
    200
  • 【c#教程】C# 数据类型

    C# 数据类型 在 c# 中,变量分为以下几种类型: 值类型(Value types) 引用类型(Reference types) 指针类型(Pointer types) 值类型(Value types) 值类型变量可以直接分配给一个值。它…

    编程技术 2025年3月6日
    200
  • 【c#教程】C# 类型转换

    C# 类型转换 类型转换从根本上说是类型铸造,或者说是把数据从一种类型转换为另一种类型。在 c# 中,类型铸造有两种形式: 隐式类型转换 – 这些转换是 C# 默认的以安全方式进行的转换。例如,从小的整数类型转换为大的整数类型,…

    编程技术 2025年3月6日
    200
  • 【c#教程】C# 运算符

    C# 运算符 运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。c# 有丰富的内置运算符,分类如下: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 杂项运算符 本教程将逐一讲解算术运算符、关系运算符、逻辑运算符、位运算符、赋…

    编程技术 2025年3月6日
    200

发表回复

登录后才能评论