在C ++中我有这个:http://msdn.microsoft.com/en-us/library/b0084kay(v=vs.80).aspx。
所以我可以编写只在我调试时才运行的代码,或者只针对特定平台(PowerPC,MIPS,Power Macintosh等),它不再受支持,但它是一个非常好的例子。 您也可以在32位和64位系统之间进行切换(当然,这只有在您发布2个不同版本时才有用,每个版本都有自己的处理器架构。在C#中这是一个罕见的需求但是, 那里)。
所以我的问题是,如果C#中存在类似的东西。
我意识到没有宏,但有一些符号(即使有相同的#define
关键字。所以至少对我来说它是有意义的 - 它应该存在。
答案 0 :(得分:6)
在.NET中有Pre-processing directives。要在调试时包含一些代码块,您可以这样做:
#define Debug // Debugging on
class PurchaseTransaction
{
void Commit() {
#if Debug
CheckConsistency();
#else
/* Do something else
#endif
}
}
如果转到Visual Studio中的“项目设置”,请选中“构建”选项卡。在那里,您可以为所选配置定义调试和跟踪常量(默认情况下已选中Debug版本)。您还可以定义其他条件编译符号。
答案 1 :(得分:5)
MSDN文档未列出任何预定义的名称。似乎所有人都需要来自#define和/ define。
答案 2 :(得分:1)
尽管似乎没有针对不同操作系统的目标,但针对不同的.NET frameworks还是有一些目标:
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