首页 > Windows开发 > 详细

C# 预处理指令

时间:2018-10-02 18:57:37      阅读:256      评论:0      收藏:0      [点我收藏+]

C# 预处理指令

  • #if...else
  • #define...undef
  • #warning
  • #error
  • #pragma
  • #pragma checksum
#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 NET20NET35NET40NET45NET451NET452NET46NET461NET462NET47NET471NET472
.NET Standard NETSTANDARD1_0NETSTANDARD1_1NETSTANDARD1_2NETSTANDARD1_3NETSTANDARD1_4NETSTANDARD1_5NETSTANDARD1_6NETSTANDARD2_0
.NET Core NETCOREAPP1_0NETCOREAPP1_1NETCOREAPP2_0NETCOREAPP2_1

其他预定义符号包括 DEBUG 和 TRACE 常量。 你可以使用 #define 替代项目的值集。 例如,会根据生成配置属性(“调试”或者“发布”模式)自动设置 DEBUG 符号。

public class MyClass
{
    static void Main()
    {
#if NET40
        WebClient _client = new WebClient();
#else
        HttpClient _client = new HttpClient();
#endif
    }
    //...
}

 

C# 预处理指令

原文:https://www.cnblogs.com/brt3/p/9737558.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!