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 - 指定常量的名称。必需的
    • expression - 它可以是文字或其他条件编译器常量,或者是包括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
    END Module   
    
    
    编译并执行上述代码后,将产生以下结果-
    
    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