主页
  • 主页
  • 分类
  • 热文
  • 教程
  • 面试
  • 标签
C#

C# 基础

C# 主页
C# 概述
C# 环境
C# 程序结构
C# 基本语法
C# 数据类型
C# 类型转换
C# 变量
C# 常量
C# 运算符
C# 决策结构
C# 循环结构
C# 封装
C# 方法
C# 可空类型
C# 数组
C# 字符串
C# 结构体
C# 枚举
C# 类
C# 继承
C# 多态性
C# 操作符重载
C# 接口
C# 命名空间
C# 预处理
C# 正则表达式
C# 异常
C# 文件与流

C# 高级

C# 属性(Attributes)
C# 反射
C# 属性(Properties)
C# 索引器
C# 委托
C# 事件
C# 集合
C# 泛型
C# 匿名方法
C# 不安全代码
C# 线程

基础

C# 主页
C# 概述
C# 环境
C# 程序结构
C# 基本语法
C# 数据类型
C# 类型转换
C# 变量
C# 常量
C# 运算符
C# 决策结构
C# 循环结构
C# 封装
C# 方法
C# 可空类型
C# 数组
C# 字符串
C# 结构体
C# 枚举
C# 类
C# 继承
C# 多态性
C# 操作符重载
C# 接口
C# 命名空间
C# 预处理
C# 正则表达式
C# 异常
C# 文件与流

高级

C# 属性(Attributes)
C# 反射
C# 属性(Properties)
C# 索引器
C# 委托
C# 事件
C# 集合
C# 泛型
C# 匿名方法
C# 不安全代码
C# 线程

C# 预处理


上一章 下一章

预处理指令给编译器提供了在实际编译开始前预处理信息的指示。

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

C# 编译器没有单独的预处理器;但是,指令的处理如同存在预处理器一样。在 C# 中,预处理指令用来帮助条件编译。与 C 和 C++ 的指令不同,它们并不用来创建宏。一个预处理指令必须是一行中的唯一指令。

C# 中的预处理指令

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

序号 预处理指令 描述
1 #define 定义一个字符序列,称为符号。
2 #undef 允许您取消定义一个符号。
3 #if 允许测试一个或多个符号以查看它们是否为真。
4 #else 与 #if 一起使用,允许创建复合条件指令。
5 #elif 允许创建复合条件指令。
6 #endif 指定条件指令的结束。
7 #line 允许您修改编译器的行号(可选地)以及错误和警告的文件名输出。
8 #error 允许从代码中的特定位置生成一个错误。
9 #warning 允许从代码中的特定位置生成一级警告。
10 #region 允许您指定一个代码块,在使用 Visual Studio 代码编辑器的大纲特性时可以展开或折叠。
11 #endregion 标记 #region 块的结束。

#define 预处理指令

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

#define 可以让您定义一个符号,这样,通过将此符号作为传递给 #if 指令的表达式,该表达式将被评估为真。其语法如下:

#define symbol

下面的程序说明了这一点:

示例代码

#define PI 
using System;

namespace PreprocessorDAppl {
   class Program {
      static void Main(string[] args) {
         #if (PI)
            Console.WriteLine("PI 已定义");
         #else
            Console.WriteLine("PI 未定义");
         #endif
         Console.ReadKey();
      }
   }
}

当上述代码被编译和执行时,它产生以下结果:

PI 已定义

条件指令

您可以使用 #if 指令来创建条件指令。条件指令对于测试一个或多个符号是否评估为真很有用。如果它们确实评估为真,则编译器会评估 #if 与下一个指令之间的所有代码。

条件指令的语法如下:

#if symbol [operator symbol]...

其中,symbol 是要测试的符号的名字。您也可以使用 true 和 false 或者在符号前面加上否定操作符。

operator symbol 是用于评估符号的操作符。操作符可能是以下之一:

  • == (相等)
  • != (不等)
  • && (逻辑与)
  • || (逻辑或)

您也可以用括号将符号和操作符组合起来。条件指令用于编译调试版本的代码或为特定配置编译代码。以 #if 指令开头的条件指令必须显式地以 #endif 指令结束。

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

示例代码

#define DEBUG
#define VC_V10
using System;

public class TestClass {
   public static void Main() {
      #if (DEBUG && !VC_V10)
         Console.WriteLine("DEBUG 已定义");
      #elif (!DEBUG && VC_V10)
         Console.WriteLine("VC_V10 已定义");
      #elif (DEBUG && VC_V10)
         Console.WriteLine("DEBUG 和 VC_V10 已定义");
      #else
         Console.WriteLine("DEBUG 和 VC_V10 未定义");
      #endif
      Console.ReadKey();
   }
}

当上述代码被编译和执行时,它产生以下结果:

DEBUG 和 VC_V10 已定义
上一章 下一章
阅读号二维码

关注阅读号

联系二维码

联系我们

© 2024 Yoagoa. All rights reserved.

粤ICP备18007391号

站点地图