Www.helper3.com
热门关键字: php net javascript java
CSharp基础 专题
专题目录
您的位置:csharp > CSharp基础 专题 > C#预处理指令
C#预处理指令
作者:--    发布时间:2019-11-20 10:27:34

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

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

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 symbol

以下程序演示如何使用#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();
      }
   }
}

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

pi is defined

条件指令

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

条件指令的语法是:

#if symbol [operator symbol]...

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

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

  • ==(相等)
  • !=(不等式)
  • &&(和)
  • || (或)

也可以使用括号对符号和运算符进行分组。在用于编译调试版本的代码或编译特定配置时可使用条件指令。 以#if指令开头的条件指令必须明确地使用#endif指令终止。

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

#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 and vc_v10 are defined

滚动到顶部 滚动到底部
网站声明:
本站部分内容来自网络,如您发现本站内容
侵害到您的利益,请联系本站管理员处理。
联系站长
QQ群:570078429
网站备案号:
粤ICP备17073857号