Hlavní procedura v jazyce Visual Basic

Každá Visual Basic aplikace musí obsahovat proceduru s názvem Main . Tento postup slouží jako výchozí bod a celková kontrola nad aplikací. Aplikace .NET Framework proceduru, jakmile načte vaši aplikaci, a je připravena předat do ní Main řízení. Pokud nevytváříte Windows Forms, musíte napsat proceduru pro aplikace, Main které běží samostatně.

Main obsahuje kód, který se spustí jako první. V nástroji můžete určit, který formulář se má načíst jako první při spuštění programu, zjistit, jestli je v systému už spuštěná kopie aplikace, vytvořit sadu proměnných pro vaši aplikaci nebo otevřít databázi, kterou Main aplikace vyžaduje.

Požadavky pro hlavní proceduru

Soubor, který běží samostatně (obvykle s příponou .exe), musí obsahovat Main proceduru. Knihovna (například s rozšířením .dll) se nespouštěla samostatně a nevyžaduje Main proceduru. Požadavky na různé typy projektů, které můžete vytvořit, jsou následující:

  • Konzolové aplikace se spouštějí samostatně a musíte zadat alespoň jeden Main postup.

  • Windows Aplikace formulářů se spouštějí samostatně. Kompilátor Visual Basic v takové aplikaci automaticky vygeneruje proceduru a není nutné ji Main psát.

  • Knihovny tříd nevyžadují Main proceduru. Patří sem Windows ovládacích panelů a knihovny webových ovládacích panelů. Webové aplikace se nasadí jako knihovny tříd.

Deklarování hlavní procedury

Existují čtyři způsoby deklarace Main procedury. Může přijmout argumenty nebo ne a může vracet hodnotu nebo ne.

Poznámka

Pokud Main deklarujete ve třídě , musíte použít klíčové Shared slovo . V modulu Main nemusí být Shared .

  • Nejjednodušším způsobem je deklarovat Sub proceduru, která nepřevezme argumenty nebo nevrátí hodnotu.

    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 může také vrátit Integer hodnotu, kterou operační systém používá jako ukončovací kód programu. Ostatní programy mohou tento kód otestovat prozkoumáním Windows ERRORLEVEL. Pokud chcete vrátit ukončovací kód, musíte místo procedury Main Function deklarovat jako Sub proceduru.

    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 může také převzít String pole jako argument. Každý řetězec v poli obsahuje jeden z argumentů příkazového řádku, které se používají k vyvolání programu. V závislosti na jejich hodnotách můžete provádět různé akce.

    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
    
  • Můžete Main deklarovat, že chcete prozkoumat argumenty příkazového řádku, ale nevrací ukončovací kód, jak je vidět níže.

    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
    

Viz také