VB.Net – 指令
VB.Net – 指令
VB.Net 编译器指令向编译器提供指令以在实际编译开始之前对信息进行预处理。所有这些指令都以 # 开头,并且在一行中的指令之前只能出现空白字符。这些指令不是语句。
VB.Net 编译器没有单独的预处理器;然而,指令的处理就像有一个指令一样。在 VB.Net 中,编译器指令用于帮助条件编译。与 C 和 C++ 指令不同,它们不用于创建宏。
VB.Net 中的编译器指令
VB.Net 提供以下一组编译器指令 –
-
#Const 指令
-
#ExternalSource 指令
-
#If…Then…#Else 指令
-
#Region 指令
#Const 指令
该指令定义了条件编译器常量。该指令的语法是 –
#Const constname = expression
在哪里,
-
constname – 指定常量的名称。必需的。
-
表达式– 它可以是文字或其他条件编译器常量,也可以是包括除Is之外的任何或所有算术或逻辑运算符的组合。
例如,
#Const state = "WEST BENGAL"
例子
以下代码演示了该指令的假设用法 –
Module mydirectives #Const age = True Sub Main() #If age Then Console.WriteLine("You are welcome to the Robotics Club") #End If Console.ReadKey() End Sub End Module
当上面的代码被编译和执行时,它会产生以下结果 –
You are welcome to the Robotics Club
#ExternalSource 指令
该指令用于指示特定源代码行与源外部文本之间的映射。它仅供编译器使用,调试器对代码编译没有影响。
该指令允许将外部代码文件中的外部代码包含到源代码文件中。
该指令的语法是 –
#ExternalSource( StringLiteral , IntLiteral ) [ LogicalLine ] #End ExternalSource
#ExternalSource 指令的参数是外部文件的路径、第一行的行号和发生错误的行。
例子
以下代码演示了该指令的假设用法 –
Module mydirectives Public Class ExternalSourceTester Sub TestExternalSource() #ExternalSource("c:\vbprogs\directives.vb", 5) Console.WriteLine("This is External Code. ") #End ExternalSource End Sub End Class Sub 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 Then statements [ #ElseIf expression Then [ statements ] ... #ElseIf expression Then [ statements ] ] [ #Else [ statements ] ] #End If
例如,
#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 = 8 Sub Main() #If classCode = 7 Then Console.WriteLine("Exam Questions for Class VII") #ElseIf classCode = 8 Then Console.WriteLine("Exam Questions for Class VIII") #Else Console.WriteLine("Exam Questions for Higher Classes") #End If Console.ReadKey() End Sub End 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