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


Условная компиляция в 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, будет скомпилирован условный код для французской версии. Если задать значение константы GermanVersionTrue, компилятор использует немецкую версию. Если ни один из них не установлен в True, выполняется код в последнем блоке Else.

Замечание

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

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

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

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

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

  • В вашем коде

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

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

Справка

Директива #Const

#If... Затем директивы #Else

-define (Visual Basic)