是否可以在下面的代码中使用编译器定义的常量?
#If DEALER_DEBUG = "ID12345" Then
If(Dealer.ID = DEALER_DEBUG) Then
'Do something
End If
#End If
我正在运行批处理流程,而且我的客户数据存在问题。我想只为该客户添加特殊代码,但我希望将代码保留在那里,以便在将来需要调试其他客户时,我可以轻松切换客户ID。
编译后的dll的源代码将如下所示:
If(Dealer.ID = "ID12345") Then
'Do something
End If
答案 0 :(得分:4)
没有。编译器指令就是编译器的指令。它们不包含在生成的IL代码中,因此无法在运行时访问。
答案 1 :(得分:0)
您可以在编译时#If中使用它,但是您不能在运行时使用它如果
您可以在Compile->Advanced Compile Options->Custom Constants下的项目属性中定义自定义编译器常量,也可以使用#Const指令定义。
有很多更好的方法可以做到这一点。我不太清楚你究竟想要完成什么,但你可能想要考虑某种工厂模式+插件+配置,它允许你为该客户端提供一个插件组件,它可以提供额外的功能。
创建一个可扩展的应用程序可以说有很多工作要做,但是如果你发现自己需要做这些事情,那么从一开始就把它写成可扩展的东西要好得多。以后回来重构