C# 预处理器指令介绍

C# 预处理器指令会影响编译过程。主要用途:1.在编译A版本时,可以使用预处理指令禁止编译器编译与与A版本无关的代码。2.在编写提供调试信息的代码时,也可以使用预处理器指令。

#if #else #elif #endif

流程控制。不会被执行的分支的代码在编辑器里会灰掉。

# define #undef

# define或#undef必须放在脚本的第一行,也就是放在所有using XXX;前面。和#if #else #elif #endif一起使用。

#define PI
using System;
class Program
{
   static void Main(string[] args)
   {
      #if (PI)
         Console.WriteLine("PI is defined");     //PI不存在,则这条语句不编译
      #else
         Console.WriteLine("PI is not defined"); //PI存在,则这条语句不编译
      #endif
      Console.ReadKey();
   }
}
// 输出PI is defined

Unity提供了一些define预处理器指令(比如:UNITY_5_3_OR_NEWER表示Unity5.3以及更新的版本),可以专门为你的目标平台编译代码、限制Unity特定版本等。

#if UNITY_EDITOR // will be compiled no matter what Platform is set but only if you click "Play" 
    Debug.Log("Unity Editor");
#elif UNITY_IOS
    Debug.Log("Unity IOS");
#elif UNITY_ANDROID //  will be compiled if Platform is set to "Android" inside "Build Settings" dialog and you click "Build" or click "Play"
    Debug.Log("Unity ANDROID");
#else
    Debug.Log("Any other platform");
#endif

// 仅在Android设备上执行代码
#if UNITY_ANDROID && !UNITY_EDITOR
//code here
#endif

#region #endregion

这个两个用来组成代码块,不影响编译,只是为了使代码在屏幕上更好地布局。

#region A
// 逻辑代码
#endregion

效果:
在这里插入图片描述

#warning #error

#warning 指令,会给用户显示 #warning 指令后面的文本。
在这里插入图片描述
#error 指令,会给用户显示后面的文本,作为一条编译错误消息,以至于代码无法编译。
在这里插入图片描述
总结:1.使用 #warning 语句可以提醒自己在某个时刻执行某个操作,比如这个例子的警告就是“别忘了在给老板看前删了下方的代码”。2.使用 #error 语句可以检查 #define 语句是不是定义错了。
在这里插入图片描述

#pragma warning

可以抑制或还原指定编号的编译警告,举例如下:编号为CS1030的警告没了。在这里插入图片描述
如果你的错误列表窗口不见了,点击视图->错误列表,就出来了。
再举一个例子:
在这里插入图片描述
如果没加#pragma warning disable 219,结果如下:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/BillCYJ/article/details/90695324