3

我正在使用与 Unity 游戏引擎捆绑的 MonoDevelop 版本。我以前从未在 C# 中使用过#if/#endif,所以我从未注意到这一点。我在一个新的空文件上检查了这个。我该如何解决?

4

2 回答 2

2

我已经对此进行了一些尝试,我注意到“#if DEBUG”块的条件代码被注释掉了。当您已经到了构建发布代码的地步时,它可能会有所帮助。“调试”测试内容保留在您的代码中,但看起来像注释。这是我用来测试的东西,ymmv:

using System;
namespace testConditionalCompile
{
   class MainClass
   {
      public static void Main (string[] args)
      {

#if RELEASE         
          Console.WriteLine("Release code"); 
#endif          

#if DEBUG   
          Console.WriteLine("Debug code");          
#endif
        }
    }
}

我意识到条件代码块不是编写它的最佳方式,但我认为它可能最能说明我的观点。

于 2012-11-21T18:02:18.370 回答
0

对于那些处理任何一个或两个#if UNITY_IOS ... #elif UNITY_ANDROID预处理器指令显示为已注释和/或有奇怪的代码格式化问题的人,Monodevelop 仅根据您当前在构建设置中选择的任何平台格式化代码。因此,您在下面看到的内容是有意的,因为 Monodevelop 对这段代码的处理基本上与注释代码相同。逻辑是因为它不会被执行,甚至不会包含在构建中,所以不应该在编辑器中检查它。因此格式化/注释掉的处理。我个人觉得这很烦人,因为无论我在构建设置中选择的当前平台如何,我都应该能够编写/查看格式化代码。

截屏

于 2017-08-12T17:31:47.593 回答