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


Процедура Main в Visual Basic

Каждое приложение Visual Basic должно содержать процедуру с именем Main. Эта процедура служит отправной точкой и общим элементом управления для приложения. Платформа .NET Framework вызывает Main процедуру при загрузке приложения и готова передать в нее управление. Если вы не создаете приложение Windows Forms, необходимо написать процедуру Main для приложений, которые выполняются самостоятельно.

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

Требования к основной процедуре

Файл, который выполняется самостоятельно (обычно с расширением .exe), должен содержать процедуру Main . Библиотека (например, с расширением .dll) не выполняется самостоятельно и не требует Main процедуры. Требования к различным типам проектов, которые можно создать, приведены ниже.

  • Консольные приложения выполняются самостоятельно, и необходимо предоставить по крайней мере одну Main процедуру.

  • Приложения Windows Forms выполняются самостоятельно. Однако компилятор Visual Basic автоматически создает процедуру Main в таком приложении, и ее не нужно писать.

  • Библиотеки классов не требуют Main процедуры. К ним относятся библиотеки элементов управления Windows и библиотеки веб-элементов управления. Веб-приложения развертываются как библиотеки классов.

Объявление основной процедуры

Существует четыре способа объявления Main процедуры. Он может принимать аргументы или нет, и он может возвращать значение или нет.

Примечание.

Если вы объявляете Main в классе, необходимо использовать Shared ключевое слово. В модуле Main не требуется Shared.

  • Самый простой способ — объявить процедуру Sub , которая не принимает аргументы или возвращает значение.

    Module mainModule
        Sub Main()
            MsgBox("The Main procedure is starting the application.")
            ' Insert call to appropriate starting place in your code.
            MsgBox("The application is terminating.")
        End Sub
    End Module
    
  • Main также может возвращать значение, которое операционная Integer система использует в качестве кода выхода для программы. Другие программы могут протестировать этот код, проверив значение Windows ERRORLEVEL. Чтобы вернуть код выхода, необходимо объявить Main как Function процедуру вместо Sub процедуры.

    Module mainModule
        Function Main() As Integer
            MsgBox("The Main procedure is starting the application.")
            Dim returnValue As Integer = 0
            ' Insert call to appropriate starting place in your code.
            ' On return, assign appropriate value to returnValue.
            ' 0 usually means successful completion.
            MsgBox("The application is terminating with error level " &
                 CStr(returnValue) & ".")
            Return returnValue
        End Function
    End Module
    
  • Main также может принимать String массив в качестве аргумента. Каждая строка в массиве содержит один из аргументов командной строки, используемых для вызова программы. Вы можете выполнять различные действия в зависимости от их значений.

    Module mainModule
        Function Main(ByVal cmdArgs() As String) As Integer
            MsgBox("The Main procedure is starting the application.")
            Dim returnValue As Integer = 0
            ' See if there are any arguments.
            If cmdArgs.Length > 0 Then
                For argNum As Integer = 0 To UBound(cmdArgs, 1)
                    ' Insert code to examine cmdArgs(argNum) and take
                    ' appropriate action based on its value.
                Next
            End If
            ' Insert call to appropriate starting place in your code.
            ' On return, assign appropriate value to returnValue.
            ' 0 usually means successful completion.
            MsgBox("The application is terminating with error level " &
                 CStr(returnValue) & ".")
            Return returnValue
        End Function
    End Module
    
  • Вы можете объявить Main , чтобы проверить аргументы командной строки, но не возвращать код выхода, как показано ниже.

    Module mainModule
        Sub Main(ByVal cmdArgs() As String)
            MsgBox("The Main procedure is starting the application.")
            Dim returnValue As Integer = 0
            ' See if there are any arguments.
            If cmdArgs.Length > 0 Then
                For argNum As Integer = 0 To UBound(cmdArgs, 1)
                    ' Insert code to examine cmdArgs(argNum) and take
                    ' appropriate action based on its value.
                Next
            End If
            ' Insert call to appropriate starting place in your code.
            MsgBox("The application is terminating.")
        End Sub
    End Module
    

См. также