3

Unity ゲーム エンジンにバンドルされている MonoDevelop のバージョンを使用しています。これまで C# で #if/#endif を使用したことがなかったので、そのことに気づきませんでした。これを新しい空のファイルで確認しました。どうすれば修正できますか?

4

2 に答える 2

2

これを少し試してみましたが、「#ifDEBUG」ブロックの条件付きコードがコメント化されていることに気づきました。リリースコードを作成する段階に達したときに、おそらく役立つでしょう。「デバッグ」テストはコードに残りますが、コメントのように見えます。これが私がそれをテストするために遊んでいたものです、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 に答える