Procedura główna w Visual Basic

Każda aplikacja języka Visual Basic musi zawierać procedurę o nazwie Main. Ta procedura służy jako punkt początkowy i ogólna kontrola aplikacji. Program .NET Framework wywołuje Main procedurę, gdy załadowała aplikację i jest gotowa do przekazania do niej kontroli. Jeśli nie tworzysz aplikacji Windows Forms, musisz napisać Main procedurę dla aplikacji uruchamianych samodzielnie.

Main zawiera kod, który jest uruchamiany jako pierwszy. W Mainprogramie można określić, który formularz ma zostać załadowany jako pierwszy po uruchomieniu programu, sprawdzić, czy kopia aplikacji jest już uruchomiona w systemie, ustanowić zestaw zmiennych dla aplikacji lub otworzyć bazę danych wymaganą przez aplikację.

Wymagania dotyczące procedury głównej

Plik uruchamiany samodzielnie (zwykle z rozszerzeniem .exe) musi zawierać procedurę Main . Biblioteka (na przykład z rozszerzeniem .dll) nie jest uruchamiana samodzielnie i nie wymaga Main procedury. Wymagania dotyczące różnych typów projektów, które można utworzyć, są następujące:

  • Aplikacje konsolowe działają samodzielnie i należy podać co najmniej jedną Main procedurę.

  • Aplikacje Windows Forms działają samodzielnie. Jednak kompilator języka Visual Basic automatycznie generuje procedurę Main w takiej aplikacji i nie trzeba jej pisać.

  • Biblioteki klas nie wymagają Main procedury. Należą do nich biblioteki kontrolek systemu Windows i biblioteki kontrolek sieci Web. Aplikacje internetowe są wdrażane jako biblioteki klas.

Deklarowanie procedury głównej

Istnieją cztery sposoby deklarowania Main procedury. Może przyjmować argumenty lub nie, i może zwracać wartość lub nie.

Uwaga

W przypadku deklarowania Main w klasie należy użyć słowa kluczowego Shared . W module Main nie musi być .Shared

  • Najprostszym sposobem jest zadeklarowanie Sub procedury, która nie bierze argumentów ani zwraca wartości.

    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 program może również zwrócić Integer wartość, której system operacyjny używa jako kodu zakończenia programu. Inne programy mogą przetestować ten kod, sprawdzając wartość ERRORLEVEL systemu Windows. Aby zwrócić kod zakończenia, należy zadeklarować Main jako procedurę Function zamiast Sub procedury.

    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 może również przyjąć tablicę String jako argument. Każdy ciąg w tablicy zawiera jeden z argumentów wiersza polecenia używanych do wywoływania programu. W zależności od ich wartości można wykonywać różne akcje.

    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
    
  • Możesz zadeklarować, Main aby zbadać argumenty wiersza polecenia, ale nie zwracać kodu zakończenia w następujący sposób.

    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
    

Zobacz też