Visual Basic 指令
VB 编译器指令给编译器提供指令,在实际编译开始之前对信息进行预处理。
所有这些指令都以 # 字符开始,只有空格字符可能出现在一行上的指令之前。这些指令不是语句。
VB 编译器没有单独的预处理器; 然而,指令被处理好像有一个。在 VB 中,编译器指令用于帮助进行条件编译。与 C 和 C++ 指令不同,它们不用于创建宏。
VB 编译指令
VB 提供了以下一组编译器指令:
#Const指令#ExternalSource指令#If…Then…#Else指令#Region指令
#Const 指令
这个指令定义了条件编译器常量。这个指令的语法是:
#Const constname = expression
其中,constname:必填。指定常量的名称,必需。expression:它可以是文字或其他条件编译器常量,也可以是包含除了 Is 以外的任何或所有算术或逻辑运算符的组合。
实例
下面的代码演示了这个指令的用法:
Module mydirectives#Const age = TrueSub Main()#If age ThenConsole.WriteLine("You are welcome to the Robotics Club")#End IfConsole.ReadKey()End SubEnd Module
结果如下:
You are welcome to the Robotics Club
#ExternalSource 指令
该指令用于指示特定的源代码行和源代码外部的文本之间的映射。它只用于编译器,调试器对代码编译没有影响。
该指令允许将来自外部代码文件的外部代码包含到源代码文件中。
这个指令的语法是:
#ExternalSource( StringLiteral , IntLiteral )[ LogicalLine ]#End ExternalSource
#ExternalSource 指令的参数是外部文件的路径,第一行的行号和发生错误的行。
实例
下面的代码演示了这个指令的假设用法:
Module mydirectivesPublic Class ExternalSourceTesterSub TestExternalSource()#ExternalSource("c:\vbprogs\directives.vb", 5)Console.WriteLine("This is External Code. ")#End ExternalSourceEnd SubEnd ClassSub Main()Dim t As New ExternalSourceTester()t.TestExternalSource()Console.WriteLine("In Main.")Console.ReadKey()End Sub
结果如下:
This is External Code.In Main.
#If…Then…#Else 指令
该指令有条件地编译选定的 Visual Basic 代码块。
这个指令的语法是:
#If expression Thenstatements[ #ElseIf expression Then[ statements ]...#ElseIf expression Then[ statements ] ][ #Else[ statements ] ]
例如,
#Const TargetOS = "Linux"#If TargetOS = "Windows 7" Then' Windows 7 specific code#ElseIf TargetOS = "WinXP" Then' Windows XP specific code#Else' Code for other OS#End if
实例
下面的代码演示了这个指令的用法:
Module mydirectives#Const classCode = 8Sub Main()#If classCode = 7 ThenConsole.WriteLine("Exam Questions for Class VII")#ElseIf classCode = 8 ThenConsole.WriteLine("Exam Questions for Class VIII")#ElseConsole.WriteLine("Exam Questions for Higher Classes")#End IfConsole.ReadKey()End SubEnd Module
结果如下:
Exam Questions for Class VIII
#Region 指令
该指令有助于在 Visual Basic 文件中折叠和隐藏代码段。
这个指令的语法是:
#Region "identifier_string"#End Region
例如,
#Region "StatsFunctions"' Insert code for the Statistical functions here.#End Region