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关键字.所以它至少对我来说是有意义的 - 它应该存在.
尽管似乎没有针对不同操作系统的任何内容,但有一些针对各种不同的.NET 框架:
NET20, NET35, NET40, NET45, NET451, NET452, NET46, NET461, NET462, NET47, NET471,NET472NETSTANDARD1_0, NETSTANDARD1_1, NETSTANDARD1_2, NETSTANDARD1_3, NETSTANDARD1_4, NETSTANDARD1_5, NETSTANDARD1_6,NETSTANDARD2_0NETCOREAPP1_0, NETCOREAPP1_1, NETCOREAPP2_0,NETCOREAPP2_1在.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版本).您还可以定义其他条件编译符号.
