为预处理器指令赋值
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
要么我不理解预处理器指令,要么它们不工作。
我正在尝试为多个框架编写一个应用程序。 (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