为预处理程序指令赋值

时间:2016-09-27 20:54:34

标签: c# 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
....

代码要少得多,我可以在我的文件上定义它。

或者这对于预处理器derectives来说根本不可能吗?

1 个答案:

答案 0 :(得分:1)

这似乎对我有用(必须在文件顶部):

StorePageCMS.Models.StorePage