Sdílet prostřednictvím


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á vaši proceduru Main, když načte vaši aplikaci a je připravená předat řízení. Pokud nevytvoříte aplikaci Windows Forms, 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 příponou .dll) se nespustí samostatně a nevyžaduje Main proceduru. 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.

  • Aplikace Windows Forms 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 deklarovat Main jako proceduru Function místo procedury 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
    
  • Jako argument lze také použít pole MainString. 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, abyste prozkoumali argumenty příkazového řádku, ale nevraceli výstupní kód takto.

    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é