Поделиться через


Условная компиляция в Visual Basic

При условной компиляции одни блоки кода в программе компилируются, в то время как другие блоки игнорируются.

Например, при необходимости написания инструкций отладки, которые сравнивают скорость выполнения одной и той же задачи при различных подходах, либо при необходимости локализации приложения для нескольких языков. Инструкции условной компиляции разработаны для выполнения во время компиляции, а не во время выполнения.

Блоки кода для условной компиляции обозначаются директивой #If...Then...#Else. Например, для создания версий одного и того же приложения на французском и немецком языках из одного исходного кода, необходимо внедрить зависимые от платформы сегменты кода в инструкции #If...Then с помощью определенных ранее констант FrenchVersion и GermanVersion. Как это сделать, показано в следующем примере:

#If FrenchVersion Then
   ' <code specific to the French language version>.
#ElseIf GermanVersion Then
   ' <code specific to the German language version>.
#Else
        ' <code specific to other versions>.
#End If

Если для константы условной компиляции FrenchVersion задается значение True во время компиляции, компилируется условный код для французской версии. Если установить для константы GermanVersion значение True, компилятор использует немецкую версию. Если ни одна константа не имеет значения True, выполняется код в последнем блоке Else.

Примечание

Автозавершение не работает при редактировании кода и использовании директив условной компиляции, если код не является частью текущей ветви.

Объявление констант условной компиляции

Константы условной компиляции могут быть заданы одним из следующих способов.

  • В Конструкторе проектов

  • В командной строке при работе с компилятором командной строки

  • В коде

Константы условной компиляции находятся в отдельной области и недоступны из обычного кода. Область действия констант условной компиляции зависит от способа их задания. В следующей таблице приведен список областей действия констант, объявленных при помощи каждого из трех описанных выше методов.

Способ задания константы

Область действия константы

Конструктор проектов

Открыта для всех файлов в проекте

Командная строка

Открыта для всех файлов, переданных компилятору командной строки

Инструкция #Const в коде

Открыта только для файла, в котором объявлена

Чтобы задать константы через конструктор проектов

Для задания констант в командной строке выполните следующие действия

  • С помощью параметра /d вставьте константы условной компиляции, как показано в следующем примере:

    vbc MyProj.vb /d:conFrenchVersion=–1:conANSI=0

    Между параметром /d и первой константой не должно быть пробела. Дополнительные сведения см. в разделе /define (Visual Basic).

    Объявления из командной строки переопределяют объявления в Конструкторе проектов, но не удаляют их. Аргументы в Конструкторе проектов остаются в силе для последующих компиляций.

    При описании констант непосредственно в самом коде не существует строгих правил по их расположению, однако их область действия ограничивается модулем, в котором они объявлены.

Для задания констант в вашем коде выполните следующие действия

  • Поместите константы в блок объявлений того модуля, где они используются. Это позволяет структурировать код и облегчить его чтение.

Связанные разделы

Заголовок

Описание

Соглашения о структуре программы и коде (Visual Basic)

Рекомендации по упрощению чтения и использования кода.

Ссылки

Директива #Const

Директивы #If...Then...#Else

/define (Visual Basic)