Routine Main in Visual BasicMain Procedure in Visual Basic

Ogni applicazione Visual Basic deve contenere una procedura denominata Main.Every Visual Basic application must contain a procedure called Main. Questa procedura funge da punto di partenza e controllo generale per l'applicazione.This procedure serves as the starting point and overall control for your application. Il .NET Framework chiama la Main procedura quando ha caricato l'applicazione ed è pronta per passare il controllo.The .NET Framework calls your Main procedure when it has loaded your application and is ready to pass control to it. A meno che non si stia creando una Windows Forms Application, è necessario Main scrivere la procedura per le applicazioni che vengono eseguite autonomamente.Unless you are creating a Windows Forms application, you must write the Main procedure for applications that run on their own.

Maincontiene il codice che viene eseguito per primo.Main contains the code that runs first. In Mainè possibile determinare il modulo da caricare per primo all'avvio del programma, verificare se una copia dell'applicazione è già in esecuzione nel sistema, stabilire un set di variabili per l'applicazione o aprire un database necessario per l'applicazione.In Main, you can determine which form is to be loaded first when the program starts, find out if a copy of your application is already running on the system, establish a set of variables for your application, or open a database that the application requires.

Requisiti per la procedura principaleRequirements for the Main Procedure

Un file che viene eseguito autonomamente, in genere con estensione exe, deve contenere una Main routine.A file that runs on its own (usually with extension .exe) must contain a Main procedure. Una libreria, ad esempio con estensione dll, non viene eseguita autonomamente e non richiede una Main procedura.A library (for example with extension .dll) does not run on its own and does not require a Main procedure. I requisiti per i diversi tipi di progetti che è possibile creare sono i seguenti:The requirements for the different types of projects you can create are as follows:

  • Le applicazioni console vengono eseguite autonomamente ed è necessario fornire almeno una Main procedura.Console applications run on their own, and you must supply at least one Main procedure.

  • Windows Forms le applicazioni vengono eseguite autonomamente.Windows Forms applications run on their own. Tuttavia, il compilatore Visual Basic genera automaticamente una Main procedura in tale applicazione e non è necessario scriverne una.However, the Visual Basic compiler automatically generates a Main procedure in such an application, and you do not need to write one.

  • Le librerie di classi non richiedono Main una procedura.Class libraries do not require a Main procedure. Sono incluse le librerie di controlli Windows e le librerie di controlli Web.These include Windows Control Libraries and Web Control Libraries. Le applicazioni Web vengono distribuite come librerie di classi.Web applications are deployed as class libraries.

Dichiarazione della routine MainDeclaring the Main Procedure

Esistono quattro modi per dichiarare la Main procedura.There are four ways to declare the Main procedure. Può assumere o meno argomenti e può restituire un valore.It can take arguments or not, and it can return a value or not.

Nota

Se si dichiara Main in una classe, è necessario usare la Shared parola chiave.If you declare Main in a class, you must use the Shared keyword. In un modulo Main non è necessario che sia Shared.In a module, Main does not need to be Shared.

  • Il modo più semplice consiste nel dichiarare una Sub routine che non accetta argomenti o restituisce un valore.The simplest way is to declare a Sub procedure that does not take arguments or return a value.

    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
    
  • Mainpuò inoltre restituire un Integer valore, che viene utilizzato dal sistema operativo come codice di uscita per il programma.Main can also return an Integer value, which the operating system uses as the exit code for your program. Altri programmi possono testare questo codice esaminando il valore ERRORLEVEL di Windows.Other programs can test this code by examining the Windows ERRORLEVEL value. Per restituire un codice di uscita, è necessario Main dichiarare Function come routine anziché Sub come routine.To return an exit code, you must declare Main as a Function procedure instead of a Sub procedure.

    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
    
  • Mainpuò inoltre assumere una String matrice come argomento.Main can also take a String array as an argument. Ogni stringa della matrice contiene uno degli argomenti della riga di comando usati per richiamare il programma.Each string in the array contains one of the command-line arguments used to invoke your program. È possibile eseguire azioni diverse a seconda dei rispettivi valori.You can take different actions depending on their values.

    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
    
  • È possibile dichiarare Main per esaminare gli argomenti della riga di comando, ma non per restituire un codice di uscita, come indicato di seguito.You can declare Main to examine the command-line arguments but not return an exit code, as follows.

    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
    

Vedere ancheSee also