Vb.net-directives

提供:Dev Guides
移動先:案内検索

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
  1. 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