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("F:\worksp\vb.net\helloworld.vb", 0)
            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

当上面的代码被编译并执行时,会产生以下结果:

F:\worksp\vb.net>vbc mydirectives.vbc
F:\worksp\vb.net>mydirectives.exe
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

示例

下面的代码演示了这个指令的用法,代码文件:ifthenelse_directives.vb -

Module ifthenelse_directives
#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

执行上面示例代码,得到以下结果 -

F:\worksp\vb.net>vbc ifthenelse_directives.vb
......
F:\worksp\vb.net>ifthenelse_directives.exe
Exam Questions for Class VIII

#Region指令

该指令有助于在Visual Basic文件中折叠和隐藏代码段。

这个指令的语法是:

#Region "identifier_string" 
#End Region

示例 -

#Region "StatsFunctions" 
' Insert code for the Statistical functions here. '
#End Region

猿狮妹
2023-03-07
VB Net 指令 在线教程
热门教程
1 VB.Net教程 VB.Net是Microsoft开发的一种简单的,现代的,面向对象的计算机编程语言,它将.NET Framework和公共语言运行时的强大功能与Visual Basic的优势相结合。本教程将介绍和讲解基本的VB.Net编程,并讲解各种有关VB.Net编程语言的基础、高级概念。
2 VB.Net Excel工作表 VB.Net支持Microsoft Excel 2010的COM对象模型和应用程序之间的互操作性。 要应用程序中使用这种互操作性,需要在Windows窗体应用程序中导入名称空间Microsoft
3 VB.Net程序结构 在学习VB.Net编程语言的基本构建块之前,先来看看一个最基本的VB.Net程序结构,以便可以在以后的章节中作为参考来理解程序代码块。 VB.Net Hello World示
4 VB.Net开发环境安装配置 在本章中,我们将讨论和学习可用于创建VB.Net应用程序的工具。 我们已经提到,VB.Net是.Net框架的一部分,用于编写.Net应用程序。 因此,在讨论用于运
5 VB.Net子程序(Sub) 在前面的章节中提到:子程序是不返回任何值的程序。到目前为止,在前面所有的例子中一直使用子过程Main。 在这些教程中,我们一直在编写控制台应
6 VB.Net第一个程序(Helloworld) 为了演示如何使用VS 2017创建一个简单的VB.net应用程序,这里将使用VS 2017来创建一个简单的“Hello,World”的控制台应用应用程序。这个例子将使用VB.NET
7 VB.Net数据类型 数据类型是指用于声明不同类型的变量或函数的扩展系统。变量的类型决定了它在存储器中占用多少空间以及如何解释存储的位模式。 VB.Net数据类型VB.
8 VB.Net类和对象 当定义一个类时,就定义了一个数据类型的蓝图(或模板)。这实际上并没有定义任何数据,但它确实定义了类名和含义,即该类的一个对象将包含哪些内
9 VB.Net正则表达式 正则表达式是可以与输入文本进行匹配的模式。.Net 框架提供了允许这种匹配的正则表达式引擎。模式由一个或多个字符文字,运算符或构造组成。 用
10 VB.Net基本控件 对象是通过使用工具箱控件在Visual Basic 窗体上创建的一种用户界面元素。 实际上,在Visual Basic中,窗体(Form)本身就是一个对象。 每个Visual Basic 控件都
  • Copyright © 2021 猿狮院, All rights reserved.