Hlavní procedura v jazyce Visual Basic

Každá aplikace jazyka Visual Basic musí obsahovat proceduru s názvem Main. Tento postup slouží jako výchozí bod a celkové řízení vaší aplikace. Rozhraní .NET Framework volá proceduru Main , když načetla vaši aplikaci a je připravená k předání řízení. Pokud nevytvoříte model Windows Forms aplikaci, musíte napsat Main postup pro aplikace, které běží samostatně.

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

Požadavky na hlavní postup

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

  • Konzolové aplikace běží samostatně a musíte zadat alespoň jeden Main postup.

  • model Windows Forms aplikace běží samostatně. Kompilátor jazyka Visual Basic však automaticky vygeneruje proceduru Main v takové aplikaci a není nutné ji napsat.

  • Knihovny tříd nevyžadují proceduru Main . Patří mezi ně knihovny ovládacích prvků Systému Windows a knihovny webových ovládacích prvků. Webové aplikace se nasazují jako knihovny tříd.

Deklarace hlavní procedury

Existují čtyři způsoby, jak proceduru Main deklarovat. Může přijímat argumenty nebo ne a může vrátit hodnotu, nebo ne.

Poznámka:

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

  • Nejjednodušší způsob je deklarovat proceduru Sub , která nepřebírají argumenty ani nevrací 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 hodnoty WINDOWS ERRORLEVEL. Chcete-li vrátit ukončovací kód, musíte místo procedury deklarovat Main jako Function proceduru 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 matici String lze také použít jako argument. Každý řetězec v poli obsahuje jeden z argumentů příkazového řádku, které slouží 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 deklarovat Main , že chcete prozkoumat argumenty příkazového řádku, ale nevrací ukončovací kód následujícím způsobem.

    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é