Visual Basic是否支持类似C#的#undef取消定义常量?
Visual Basic 是否支持类似 C# #undef 的常量取消定义功能?
在C#中,可通过#undef指令移除已定义的条件编译符号:
#undef SYMBOL_1 // ... #if SYMBOL_1 ThisDoesNotRun(); #else ButThisDoesRun(); #endif
Visual Basic中通过#Const定义条件编译常量,示例如下:
#Const VB_SYMBOL_1 = True ' ... #If VB_SYMBOL_1 ThisWillRun() #End If #If Not VB_SYMBOL_1 ButThisWillNot() #End If
Visual Basic 没有直接对应 C# #undef 的指令来取消定义条件编译常量。
虽然可以通过#Const VB_SYMBOL_1 = False将常量设为False,但这和“取消定义”并非同一概念:
- 取消定义后,
#If判断该符号时会视为未定义(逻辑上等同于False,但本质是符号本身不存在); - 设为
False只是修改了常量的值,符号本身依然处于已定义状态。
内容的提问来源于stack exchange,提问作者AlainD
相关产品推荐
相关产品推荐

