C#有预定义的符号吗?

Mas*_*tic 9 c# preprocessor-directive

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

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

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

tim*_*den 7

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

  • .NET 框架
    • NET20, NET35, NET40, NET45, NET451, NET452, NET46, NET461, NET462, NET47, NET471,NET472
  • .NET 标准
    • NETSTANDARD1_0, NETSTANDARD1_1, NETSTANDARD1_2, NETSTANDARD1_3, NETSTANDARD1_4, NETSTANDARD1_5, NETSTANDARD1_6,NETSTANDARD2_0
  • .NET 核心
    • NETCOREAPP1_0, NETCOREAPP1_1, NETCOREAPP2_0,NETCOREAPP2_1


Mic*_*uda 6

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

#define Debug      // Debugging on

class PurchaseTransaction
{
   void Commit() {
      #if Debug
         CheckConsistency();
      #else
         /* Do something else
      #endif
   }
}
Run Code Online (Sandbox Code Playgroud)

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

在此输入图像描述

  • 啊,我明白了.有点令人失望,我期待一长串有用的东西,但这也很棒.不过,谢谢你的澄清,我很感激! (2认同)

Pra*_*dip 5

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

在这里检查IF