C# 为预处理器指令赋值

C# 为预处理器指令赋值,c#,preprocessor-directive,C#,Preprocessor Directive,要么我不理解预处理器指令,要么它们不工作 我正在尝试为多个框架编写一个应用程序。(DNX451,DNX46,网络标准1_5,…) 所以我总是要写这样的东西(非常简单的例子,我知道我在这里不需要它) 那么有没有可能定义一个变量呢?至少每个文件,因此我可以说,例如: #define NetCore (NETSTANDARD1_5 || NETSTANDARD1_6 || NETCOREAPP1_0) 所以我只需要写 public class Test { #if !NetCore publ

要么我不理解预处理器指令,要么它们不工作

我正在尝试为多个框架编写一个应用程序。(DNX451,DNX46,网络标准1_5,…)

所以我总是要写这样的东西(非常简单的例子,我知道我在这里不需要它)

那么有没有可能定义一个变量呢?至少每个文件,因此我可以说,例如:

#define NetCore (NETSTANDARD1_5 || NETSTANDARD1_6 || NETCOREAPP1_0)
所以我只需要写

public class Test
{
#if !NetCore
    public int? testVar;
#else
    public int testVar;
#endif
....
代码会少得多,我可以在我的文件上定义它

或者这在预处理器解除激活的情况下是不可能的?

这似乎适合我(必须在文件的顶部):


.csproj
中添加一个条件对你来说是一个选项吗?@Caramiriel-hmm,如果真的没有可能在代码中定义它,那将是一个选项。哦,是的,现在。。。这是一个简单合理的解决方案。有时是时候在编码之前先睡一觉了:D谢谢!那完全是我要找的。
public class Test
{
#if !NetCore
    public int? testVar;
#else
    public int testVar;
#endif
....
#if (NETSTANDARD1_5 || NETSTANDARD1_6 || NETCOREAPP1_0)
#define NetCore
#endif