VB.Net编译器指令给编译器指令,以便在实际编译开始之前预处理信息。
所有这些指令以#开头,并且在一行上的指令之前只能出现空格字符。 这些指令不是语句。
在 VB.Net 中的编译器指令
此伪指令的语法是:
此伪指令的语法是:
所有这些指令以#开头,并且在一行上的指令之前只能出现空格字符。 这些指令不是语句。
VB.Net编译器没有单独的预处理器; 然而,指令被处理,就像有一个。 在VB.Net中,编译器指令用于帮助条件编译。 与C和C ++指令不同,它们不用于创建宏。
在 VB.Net 中的编译器指令
VB.Net提供了以下一组编译器指令:
The #Const 指令
The #ExternalSource 指令
The #If...Then...#Else 指令
The #Region 指令
The#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
The#ExternalSource指令
此指令用来指示特定行的源代码和源的外部文本之间的映射。它使用仅由编译器和调试器并不影响代码编译。
此指令允许包括从外部代码文件外部的代码到一个源代码文件。
此指令的语法是︰
- #ExternalSource( StringLiteral , IntLiteral )
- [ LogicalLine ]
- #End ExternalSource
#ExternalSource伪指令的参数是外部文件的路径,第一行的行号和发生错误的行。
示例
以下代码演示了伪指令的使用:
- Module mydirectives
- Public Class ExternalSourceTester
- Sub TestExternalSource()
- #ExternalSource("c:vbprogsdirectives.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.
The #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
The #Region指令
此伪指令有助于在Visual Basic文件中折叠和隐藏代码段。此伪指令的语法是:
- #Region "identifier_string"
- #End Region
例如,
- #Region "StatsFunctions"
- ' Insert code for the Statistical functions here.
- #End Region
转载本站内容时,请务必注明来自W3xue,违者必究。