Директивы компилятора VB.Net дают инструкции компилятору предварительно обработать информацию перед началом фактической компиляции. Все эти директивы начинаются с #, и перед директивой в строке могут появляться только символы пробела. Эти директивы не являются заявлениями.
Компилятор VB.Net не имеет отдельного препроцессора; однако директивы обрабатываются так, как если бы они были. В VB.Net директивы компилятора используются для помощи в условной компиляции. В отличие от директив C и C ++, они не используются для создания макросов.
Директивы компилятора в VB.Net
VB.Net предоставляет следующий набор директив компилятора —
-
Директива #Const
-
Директива #ExternalSource
-
# Если … Тогда … # Другие директивы
-
Директива #Region
Директива #Const
Директива #ExternalSource
# Если … Тогда … # Другие директивы
Директива #Region
Директива #Const
Эта директива определяет условные константы компилятора. Синтаксис этой директивы —
#Const constname = expression
Куда,
-
constname — указывает имя константы. Необходимые.
-
Выражение — это либо литеральная, либо другая условная константа компилятора, либо комбинация, включающая любые или все арифметические или логические операторы, кроме Is .
constname — указывает имя константы. Необходимые.
Выражение — это либо литеральная, либо другая условная константа компилятора, либо комбинация, включающая любые или все арифметические или логические операторы, кроме 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
Когда приведенный выше код компилируется и выполняется, он дает следующий результат —
This is External Code. In Main.
# Если … Тогда … # Другие директивы
Эта директива условно компилирует выбранные блоки кода 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
Например,