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


Условная компиляция в 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

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

Примечание.

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

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

Константы условной компиляции можно задать одним из трех способов:

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

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

  • В вашем коде

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

Установка константы Область константы
Конструктор проектов Общедоступные для всех файлов в проекте
Командная строка Общедоступный для всех файлов, переданных компилятору командной строки
#Const оператор в коде Закрытый к файлу, в котором он объявлен
Установка констант в конструкторе проектов
— Перед созданием исполняемого файла задайте константы в конструкторе проектов, выполнив действия, описанные в разделе "Управление свойствами проекта и решения".
Установка констант в командной строке
— Используйте параметр -d для ввода констант условной компиляции, как показано в следующем примере:
vbc MyProj.vb /d:conFrenchVersion=–1:conANSI=0
Между переключателем -d и первой константой не требуется пробела. Дополнительные сведения см. в разделе -define (Visual Basic).
Объявления командной строки переопределяют объявления, введенные в конструкторе проектов, но не удаляют их. Аргументы, заданные в конструкторе проектов, остаются в силе для последующих компиляций.
При написании констант в самом коде нет строгих правил по их размещению, так как их область является всем модулем, в котором они объявлены.
Установка констант в коде
— поместите константы в блок объявления модуля, в котором они используются. Это помогает упорядочить код и упростить чтение.
Заголовок Description
Соглашения о структуре программы и коде Предоставляет предложения для упрощения чтения и обслуживания кода.

Справочные материалы

Директива #Const

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

-define (Visual Basic)