2016-09-27 11 views
0

プリプロセッサディレクティブが理解できなかったか、動作していません。プリプロセッサディレクティブへの値の割り当て

私は複数のフレームワーク用のアプリケーションを作成しようとしています。 (DNX451、DNX46、NETSTANDARD1_5、...)

だから私はいつものように何か書かなければならない(実際に簡単な例を、私はここでそれを必要はありません知っている)

public class Test 
{ 
#if !(NETSTANDARD1_5 || NETSTANDARD1_6 || NETCOREAPP1_0) 
    public int? testVar; 
#else 
    public int testVar; 
#endif 

    public string Method() 
    { 
#if !(NETSTANDARD1_5 || NETSTANDARD1_6 || NETCOREAPP1_0) 
     return (testVar ?? 0).ToString(); 
#else 
     return testVar.ToString(); 
#endif 
    } 
} 

はそうする可能性があります変数を定義しますか?ファイルあたり少なくとも、私は例えば言うことができる:

#define NetCore (NETSTANDARD1_5 || NETSTANDARD1_6 || NETCOREAPP1_0) 

だから私は唯一

public class Test 
{ 
#if !NetCore 
    public int? testVar; 
#else 
    public int testVar; 
#endif 
.... 

がはるかに少ないコードだろうと私は私のファイルの上に、それを定義することができます記述する必要があります。

これはプリプロセッサのデレクタティブでは単純にできませんか?

+0

は 'あなたのための選択肢で.csproj'に条件を追加しますか? – Caramiriel

+0

@Caramirielええと、実際にコード内に定義する可能性がない場合は、オプションになります。 –

答えて

1

これは、(ファイルの先頭になければならない)私のために働くようだ:

#if (NETSTANDARD1_5 || NETSTANDARD1_6 || NETCOREAPP1_0) 
#define NetCore 
#endif 
+1

ああ、ええ、今...その簡単で論理的な解決策。時々、コーディングする前に寝る時間です:Dありがとう!それは私が探し求めたものです。 –

関連する問題