繁体   English   中英

C#有预定义的符号吗?

[英]Does C# Have Predefined Symbols?

在C ++中我有这个: http//msdn.microsoft.com/en-us/library/b0084kay(v = vs.80).aspx

所以我可以编写只在我调试时才运行的代码,或者只针对特定平台(PowerPC,MIPS,Power Macintosh等),它不再受支持,但它是一个非常好的例子。 您也可以在32位和64位系统之间进行切换(当然,这仅在您发布2个不同版本时才有用,每个版本都有自己的处理器架构。在C#中,这是一种罕见的需求,但它仍然存在)。

所以我的问题是如果C#中存在类似的东西。 我意识到没有宏,但是有一些符号(即使是相同的#define关键字。所以它至少对我来说是有意义的 - 它应该存在。

在.NET中有预处理指令 要在调试时包含一些代码块,您可以:

#define Debug      // Debugging on

class PurchaseTransaction
{
   void Commit() {
      #if Debug
         CheckConsistency();
      #else
         /* Do something else
      #endif
   }
}

如果转到Visual Studio中的“项目设置”,请选中“构建”选项卡。 在那里,您可以为所选配置定义调试和跟踪常量(默认情况下已选中Debug版本)。 您还可以定义其他条件编译符号。

在此输入图像描述

MSDN文档未列出任何预定义的名称。 似乎所有人都需要来自#define和/ define。

在这里检查IF

虽然似乎没有任何针对不同的操作系统,但有一些针对各种不同的.NET框架

  • .NET Framework
    • NET20NET35NET40NET45NET451NET452NET46NET461NET462NET47NET471NET472
  • .NET标准
    • NETSTANDARD1_0NETSTANDARD1_1NETSTANDARD1_2NETSTANDARD1_3NETSTANDARD1_4NETSTANDARD1_5NETSTANDARD1_6NETSTANDARD2_0
  • .NET核心
    • NETCOREAPP1_0NETCOREAPP1_1NETCOREAPP2_0NETCOREAPP2_1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM