c# - 如何使用汇编版本的预处理器条件?

标签 c# .net

目前在我的代码中我有这个 if 语句:

if (System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.Major > 0)
{
     //Stuff that will execute when we get out of beta
}

因为可以在编译时预测这条语句的结果,出于好奇,我想知道是否有办法用类似的东西替换它

#if MAJOR_VERION > 0
//Do stuff
#endif

此外,如果这是可能的,那么它是好的还是坏的 .net 实践?

最佳答案

您不能这样做 - 预处理器符号是“开”或“关”(已定义或未定义),而不是具有数值。

不过,您可以在适当的项目配置中轻松定义 BETA 预处理器符号。然后,您可以在结束测试版时将其删除。

(请注意,我不确定拥有这样的条件化代码通常是个好主意。如果您在测试结束之前不打算执行该代码,那么您将如何测试该代码? )

关于c# - 如何使用汇编版本的预处理器条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5235515/

相关文章:

c# - 是否可以从 XmlSerializer 序列化中排除某些类型的成员?

c# - 为什么不能将 null 转换为 C# 中的类型参数 T?

c# - 如何将空字符串传递给可空 int

c# - 我应该使用什么控件来显示动态数据(图片、名称等),例如 ASP.NET 上的 html 表?

具有可触发初始化的 C# 单例模式

c# - 尝试在动态生成的 html 标记上应用样式属性

c# - 如果 IP 地址或主机名是本地主机,如何检查 Powershell?没有域 DNS

c# - .NET 中的 ApplicationException 是什么?

c# - 如何在 c# 程序中连续运行函数

c# - CodeRefactoringProvider 中带有 ArgumentList 的 ObjectCreationExpression