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 Main
programie 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
zamiastSub
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