zoukankan      html  css  js  c++  java
  • 编译の条件编译

    在 SDK-Style 的项目格式支持使用多框架开发,此时需要在代码里面通过条件编译符判断,在编译的时候执行不同的代码。

    本文告诉大家在框架里面对应的预定义的条件编译符有哪些

        static void Main()
        {
    #if NET40
            Console.WriteLine("Target framework: .NET Framework 4.0");
    #elif NET45  
            Console.WriteLine("Target framework: .NET Framework 4.5");
    #else
            Console.WriteLine("Target framework: .NET Standard 2.0");
    #endif
        }

    以上写法是通过条件编译符,将会在不同条件满足的时候编译出不同的 IL 代码,关于条件编译符请看官方文档#if 预处理器指令

    此时需要知道在 sdk style 的项目文件里面给不同的平台添加了哪些条件编译符可以使用

    以下是预定义的宏

    .NET Framework

    所有 .NET Framework 都定义 NETFRAMEWORK 条件编译符,此外对应不同的版本使用不同的条件编译符

    NET20
    NET35
    NET40
    NET45
    NET451
    NET452
    NET46
    NET461
    NET462
    NET47
    NET471
    NET472
    NET48

    .NET Standard

    所有 .NET Standard 都定义 NETSTANDARD 条件编译符,此外对应不同的版本使用不同的条件编译符

    NETSTANDARD1_0
    NETSTANDARD1_1
    NETSTANDARD1_2
    NETSTANDARD1_3
    NETSTANDARD1_4
    NETSTANDARD1_5
    NETSTANDARD1_6
    NETSTANDARD2_0

    .NET Core

    所有 .NET Core 都定义 NETCOREAPP 条件编译符,此外对应不同的版本使用不同的条件编译符

    NETCOREAPP1_0
    NETCOREAPP1_1
    NETCOREAPP2_0
    NETCOREAPP2_1
    NETCOREAPP2_2

    条件编译符,也叫预处理符号(preprocessor symbols) 在 Roslyn 的语法分析中,就是这样写的

    在 csproj 或 Target 中可以采用下面代码判断条件编译符是否包含

    Condition="$(DefineConstants.Contains(NET30))"
  • 相关阅读:
    REST API注意事项
    Javascript addEventListener dispatchEvent
    Javascript常见操作
    MySql运算符
    Mysql数据类型
    MySql基本命令
    php学习
    javascript学习
    如何快速掌握一种技术
    站在K2角度审视流程--任务的独占与释放
  • 原文地址:https://www.cnblogs.com/xietianjiao/p/15023348.html
Copyright © 2011-2022 走看看