簡體   English   中英

將值分配給預處理器指令

[英]assign value to preprocessor directive

我不了解預處理器指令,或者它們不起作用。

我正在嘗試為多個框架編寫應用程序。 (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
....

代碼會少得多,我可以在文件頂部定義它。

還是使用預處理器矯正器根本不可能做到這一點?

這似乎對我有用(必須放在文件頂部):

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM