VB.Net - 指令

2023-03-24 11:38 更新

VB.Net編譯器指令用于在編譯前預(yù)處理信息。

這些指令以#開頭,并且一行上只能有空格在指令前。它們不是語句。

VB.Net編譯器沒有預(yù)處理器,但是指令會(huì)被處理,就像有預(yù)編譯器一樣。

在VB.Net中,編譯器指令主要用于條件編譯。它們與C和C ++指令不同,不能用于創(chuàng)建宏。

在 VB.Net 編譯器指令

VB.Net提供了以下一組編譯器指令:

  • #Const 指令

  • #ExternalSource 指令

  • #If...Then...#Else 指令

  • #Region 指令

The#Const指令

該指令定義條件編譯常量。語法這個(gè)指令是:

#Const constname = expression
  • constname:指定常量的名稱。必要。

  • expression :它是文字或其他條件編譯器常量,或包含任何或所有算術(shù)或邏輯運(yùn)算符(除了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

當(dāng)上述代碼被編譯和執(zhí)行時(shí),它產(chǎn)生了以下結(jié)果:

You are welcome to the Robotics Club

The#ExternalSource指令

指令 指示特定 源代碼外部文本之間映射。 使用編譯器調(diào)試器影響代碼編譯。
指令允許 包括外部代碼文件外部代碼一個(gè)源代碼文件。
指令語法
#ExternalSource( StringLiteral , IntLiteral )
    [ LogicalLine ]
#End ExternalSource

#ExternalSource偽指令的參數(shù)是外部文件的路徑,第一行的行號(hào)和發(fā)生錯(cuò)誤的行。

示例

以下代碼演示了偽指令的使用:

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

當(dāng)上述代碼被編譯和執(zhí)行時(shí),它產(chǎn)生了以下結(jié)果:

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

示例

下面的代碼演示一個(gè)假設(shè)使用的指令:

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

當(dāng)上述代碼被編譯和執(zhí)行時(shí),它產(chǎn)生了以下結(jié)果:

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


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)