0

重複の可能性:
MonoとMicrosoft .NETのC#を条件付きでコンパイルするにはどうすればよいですか?

私は、Monoでまだ利用できないいくつかの機能を含め、.NETリフレクションをかなり積極的に使用するC#でコードを書いています。これを処理する簡単な方法は、少数の条件を使用することです。

 #if MONO
        ... stuff that works on mono ....
 #else
        ... stuff that works on .NET 4.0 but not (yet) on mono ...
 #endif

だからここに私の質問があります:Mono csharpコンパイラが自動的に定義するか、そうでない場合は.NET csharpコンパイラがこの方法でテストできるように、この方法でテストできる定義済みフラグはありますか?

コンパイル時のテストである必要があります(実行時にプラットフォームを決定する方法は知っていますが、それでは遅すぎます)

4

1 に答える 1

1

実行時にプラットフォームを決定することをお勧めします。プログラムがMonoのC#コンパイラでコンパイルされ、.NETで実行されることは珍しくありません(MonoのC#コンパイラを.NETランタイムで直接実行することも可能です)。

__MonoCS__コンパイラの回避策のみを目的としており、ターゲットプラットフォームを制限するために使用しないでください。

于 2012-06-28T19:47:59.207 に答える