Unity ゲーム エンジンにバンドルされている MonoDevelop のバージョンを使用しています。これまで C# で #if/#endif を使用したことがなかったので、そのことに気づきませんでした。これを新しい空のファイルで確認しました。どうすれば修正できますか?
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
}
}
}
条件付きコードブロックはそれを書くための最良の方法ではないことを私は理解していますが、それが上記の私のポイントを最もよく説明しているかもしれないと思いました。
#if UNITY_IOS ... #elif UNITY_ANDROID
プリプロセッサ ディレクティブのいずれかまたは両方がコメント アウトされているか、奇妙なコード フォーマットの問題を抱えている場合、 Monodevelop はビルド設定で現在選択しているプラットフォームに基づいてコードをフォーマットするだけです。したがって、以下に示すコードは、Monodevelop によって本質的にコメント付きコードと同じように扱われるため、意図的なものです。ロジックは、実行されないか、ビルドに含まれることさえないため、エディターでチェックするべきではないということです。したがって、フォーマット/コメントアウト処理。ビルド設定で選択した現在のプラットフォームに関係なく、フォーマットされたコードを記述/表示できるはずなので、個人的にはこれが面倒です。