[英]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。
虽然似乎没有任何针对不同的操作系统,但有一些针对各种不同的.NET框架 :
NET20
, NET35
, NET40
, NET45
, NET451
, NET452
, NET46
, NET461
, NET462
, NET47
, NET471
, NET472
NETSTANDARD1_0
, NETSTANDARD1_1
, NETSTANDARD1_2
, NETSTANDARD1_3
, NETSTANDARD1_4
, NETSTANDARD1_5
, NETSTANDARD1_6
, NETSTANDARD2_0
NETCOREAPP1_0
, NETCOREAPP1_1
, NETCOREAPP2_0
, NETCOREAPP2_1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.