当前位置: 首页 > 技术专区  > .net技术 > C#基础篇

C#预处理指令

2018-4-16 10:17:27 人评论

预处理器指令用来在编译开始之前给编译器指示预处理信息。所有预处理程序指令以符号#开头,并且只有空格字符在一行上,空格符可预处理器指令之前出现。 预处理器指令不是语句,所以它们不以分号(;)结尾。C# 编译器没有分隔预处理器;,指令被处理为只有一个。 在 C# 中,预…

预处理器指令用来在编译开始之前给编译器指示预处理信息。

所有预处理程序指令以符号#开头,并且只有空格字符在一行上,空格符可预处理器指令之前出现。 预处理器指令不是语句,所以它们不以分号(;)结尾。

C# 编译器没有分隔预处理器;,指令被处理为只有一个。 在 C# 中,预处理指令用于指示条件编译。与C语言和C++指令不同,它们不用于创建宏。 预处理程序指令必须是一行中的唯一指令。

C# 预处理器指令

下表列出了 C# 中提供的预处理指令:

预处理指令描述
#define定义一个叫作符号的字符序列。
#undef用于取消定义的符号。
#if用来测试符号以查看它们是否为真。
#else用来与#if来创建一个复合条件指令。
#elif用来创建一个复合条件指令。
#endif指定条件指令的结束。
#line用于修改编译器的行号和(可选)修改错误和警告的文件名输出。
#error用于从代码中的特定位置生成错误。
#warning用于从代码中的特定位置生成一级警告。
#region允许您在使用Visual Studio代码编辑器的概述功能时指定可以展开或折叠的代码块。
#endregion用于标志着#region块的结束。

#define预处理程序

#define预处理程序指令创建符号常量。
#define允许定义一个符号,通过使用该符号作为传递给#if指令的表达式,表达式的计算结果为true。其语法如下:

#define symbolC#

以下程序演示如何使用#define指令:

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

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

PI is definedShell

条件指令

可以使用#if指令创建条件指令。条件指令用于测试符号检查它们的值是否为真。 如果它们评估求值为true,编译器将评估求值#if到下一个指令之间的所有代码。

条件指令的语法是:

#if symbol [operator symbol]...C#

其中,符号(symbol)是要测试的符号的名称。也可以使用布尔值:truefalse,或者使用否定运算符加到符号的前面。

运算符符号是用于评估符号的运算符。运算符可以是以下任一项:

  • ==(相等)

  • !=(不等式)

  • &&(和)

  • || (或)

也可以使用括号对符号和运算符进行分组。在用于编译调试版本的代码或编译特定配置时可使用条件指令。 以#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();
   }}C#

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

DEBUG and VC_V10 are defined


上一篇:C#命名空间

下一篇:C#正则表达式

相关文章

    暂无相关的数据...

共有 条评论 网友评论

验证码: 看不清楚?
    [向上]