c# – 根据编译器版本的条件编译
发布时间:2020-12-15 03:45:57 所属栏目:百科 来源:网络整理
导读:我正在寻找一种实现这样的方式: #if CSHARP_COMPILER_IS_FOR_CSHARP_6_OR_HIGHER foo?.Bar();#else if (foo != null) { foo.Bar(); }#endif 当然,我可以自己定义一个条件编译符号,但它不合适. 有没有内置的常数? 我发现的问题相当老了.也许事情变了最好?
我正在寻找一种实现这样的方式:
#if CSHARP_COMPILER_IS_FOR_CSHARP_6_OR_HIGHER foo?.Bar(); #else if (foo != null) { foo.Bar(); } #endif 当然,我可以自己定义一个条件编译符号,但它不合适. 有没有内置的常数? 解决方法
不,从我知道他们没有改变任何东西:-)
你可以在csproj里面做一点魔法来定义常量…但它是复杂的… 没有直接指定CSC的版本的属性…有一个属性($(LangVersion)),指定所需的语言标准的版本,但通常设置为默认值,因此“编译器的最大值支持” … 或者您可以查看CSC编译器的路径…它存储在CscToolPath中,如果为空,则在MsBuildToolsPath中.从那里可能您可以辨别CSC的版本. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |