Procedimento principal no Visual Basic

Cada aplicativo Visual Basic deve conter um procedimento chamado Main. Este procedimento serve como ponto de partida e controle geral para sua aplicação. O .NET Framework chama seu Main procedimento quando ele carregou seu aplicativo e está pronto para passar o controle para ele. A menos que você esteja criando um aplicativo do Windows Forms, você deve escrever o Main procedimento para aplicativos que são executados por conta própria.

Main Contém o código que é executado primeiro. No Main, você pode determinar qual formulário deve ser carregado primeiro quando o programa for iniciado, descobrir se uma cópia do seu aplicativo já está em execução no sistema, estabelecer um conjunto de variáveis para seu aplicativo ou abrir um banco de dados que o aplicativo exige.

Requisitos para o procedimento principal

Um arquivo que é executado por conta própria (geralmente com extensão .exe) deve conter um Main procedimento. Uma biblioteca (por exemplo, com extensão .dll) não é executada sozinha e não requer um Main procedimento. Os requisitos para os diferentes tipos de projetos que você pode criar são os seguintes:

  • Os aplicativos de console são executados por conta própria e você deve fornecer pelo menos um Main procedimento.

  • Os aplicativos do Windows Forms são executados por conta própria. No entanto, o compilador do Visual Basic gera automaticamente um Main procedimento em tal aplicativo e você não precisa escrever um.

  • As bibliotecas de classes não exigem um Main procedimento. Estes incluem Bibliotecas de Controlo do Windows e Bibliotecas de Controlo Web. Os aplicativos Web são implantados como bibliotecas de classes.

Declarar o procedimento principal

Existem quatro formas de declarar o Main procedimento. Pode aceitar argumentos ou não, e pode retornar um valor ou não.

Nota

Se você declarar Main em uma classe, você deve usar a Shared palavra-chave. Em um módulo, Main não precisa ser Shared.

  • A maneira mais simples é declarar um Sub procedimento que não aceita argumentos ou retorna um valor.

    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 também pode retornar um Integer valor, que o sistema operacional usa como o código de saída para o seu programa. Outros programas podem testar esse código examinando o valor ERRORLEVEL do Windows. Para retornar um código de saída, você deve declarar Main como um Function procedimento em vez de um Sub procedimento.

    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 também pode tomar uma String matriz como um argumento. Cada cadeia de caracteres na matriz contém um dos argumentos de linha de comando usados para invocar o programa. Você pode tomar diferentes ações dependendo de seus valores.

    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
    
  • Você pode declarar Main para examinar os argumentos de linha de comando, mas não retornar um código de saída, da seguinte maneira.

    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
    

Consulte também