标签:microsoft 不能 bug 传递 trace static public cti 应用
#define MYTEST using System; public class MyClass { static void Main() { #if (DEBUG && !MYTEST) Console.WriteLine("DEBUG is defined"); #elif (!DEBUG && MYTEST) Console.WriteLine("MYTEST is defined"); #elif (DEBUG && MYTEST) Console.WriteLine("DEBUG and MYTEST are defined"); #else Console.WriteLine("DEBUG and MYTEST are not defined"); #endif } }
#define 允许你定义一个符号,但不能向符号分配值。 然后通过将该符号用作传递给 #if 指令的表达式,该表达式的计算结果为 true。
还可以通过 -define 编译器选项来定义符号。 可以通过 #undef 取消定义符号。
使用 #define 创建的符号的作用域是在其中定义它的文件。
生成系统还会感知表示不同目标框架的预定义预处理器符号。 在创建可以面向多个.NET 实现或版本的应用程序时,这些符号会很有用。
目标框架 | 符号 |
---|---|
.NET Framework | NET20 , NET35 , NET40 , NET45 , NET451 , NET452 , NET46 , NET461 , NET462 , NET47 , NET471 , NET472 |
.NET Standard | NETSTANDARD1_0 , NETSTANDARD1_1 , NETSTANDARD1_2 , NETSTANDARD1_3 , NETSTANDARD1_4 , NETSTANDARD1_5 , NETSTANDARD1_6 , NETSTANDARD2_0 |
.NET Core | NETCOREAPP1_0 , NETCOREAPP1_1 , NETCOREAPP2_0 , NETCOREAPP2_1 |
其他预定义符号包括 DEBUG 和 TRACE 常量。 你可以使用 #define 替代项目的值集。 例如,会根据生成配置属性(“调试”或者“发布”模式)自动设置 DEBUG 符号。
public class MyClass { static void Main() { #if NET40 WebClient _client = new WebClient(); #else HttpClient _client = new HttpClient(); #endif } //... }
标签:microsoft 不能 bug 传递 trace static public cti 应用
原文地址:https://www.cnblogs.com/brt3/p/9737558.html