vb.net的過程 vbnet with

詳細(xì)闡述 vb.net 中main

每個 Visual Basic 應(yīng)用程序均必須包含一個稱為VB.NET Main過程。該過程為應(yīng)用程序的起始點并為應(yīng)用程序提供總體控制。.NET Framework 在已加載應(yīng)用程序并準(zhǔn)備將控制傳遞給它時,將調(diào)用 Main 過程。除非您要創(chuàng)建 Windows 窗體應(yīng)用程序,否則就必須為自運行的應(yīng)用程序編寫 Main 過程。

我們提供的服務(wù)有:網(wǎng)站建設(shè)、成都做網(wǎng)站、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、科爾沁左翼ssl等。為上千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的科爾沁左翼網(wǎng)站制作公司

Main 中包含首先運行的代碼。在 Main 中,可以確定在程序啟動時首先加載的窗體,確定系統(tǒng)上是否已在運行您的應(yīng)用程序副本,為應(yīng)用程序建立一組變量,或者打開應(yīng)用程序需要的數(shù)據(jù)庫。

VB.NET Main過程的要求

獨立運行的文件(擴展名通常為 .exe)必須包含 Main 過程。庫(例如,擴展名為 .dll)不獨立運行,因而不需要 Main 過程??梢詣?chuàng)建的不同類型的項目的要求如下:

控制臺應(yīng)用程序可以獨立運行,而且您必須提供至少一個 Main 過程。

Windows 窗體應(yīng)用程序可以獨立運行。但是,Visual Basic 編譯器會在此類應(yīng)用程序中自動生成一個 Main 過程,因而您不需要編寫此過程。

類庫不需要 Main 過程。這些類庫包括 Windows 控件庫和 Web 控件庫。作為類庫部署 Web 應(yīng)用程序。

聲明VB.NET Main過程

有四種方法可以聲明 Main 過程。它可以使用參數(shù)或不使用參數(shù),可以返回值或不返回值。

注意

如果在類中聲明 Main 過程,則必須使用 Shared 關(guān)鍵字。在模塊中,Main 不必是 Shared。

最簡單的方法是聲明一個不使用參數(shù)或不返回值的 Sub 過程。

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 ModuleMain

還可以返回一個 Integer 值,操作系統(tǒng)將其作為程序的退出代碼。其他程序可以通過檢查 Windows ERRORLEVEL 值來測試該代碼。若要返回退出代碼,必須將VB.NET Main過程聲明為 Function 過程而不是 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 ModuleMain

還可以采用一個 String 數(shù)組作為參數(shù)。數(shù)組中的每個字符串均包含一個用于調(diào)用程序的命令行參數(shù)。您可以根據(jù)它們的值采取不同的操作。

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 argNum

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

可以聲明VB.NET Main過程來檢查命令行參數(shù)而不返回退出代碼,如下所示。

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 argNum

End If

' Insert call to appropriate

starting place in your code.

MsgBox("The application is

terminating."

End Sub

End Module

VB.NET怎么調(diào)用其它模塊的過程?

調(diào)用過程,調(diào)用過程有諸多技巧,它們與過程的類型、位置以及在應(yīng)用程序中的使用方式有關(guān)。下面說明如何調(diào)用 Sub 過程和 Function 過程。

調(diào)用 Sub 過程

與 Sub 過程不同,在表達(dá)式中,Sub 過程不能用其名字調(diào)用。調(diào)用 Sub 過程的是一個獨立的語句。Sub 過程還有一點與函數(shù)不一樣,它不會用名字返回一個值。但是,與 Function過程一樣,Sub 過程也可以修改傳遞給它們的任何變量的值。

調(diào)用 Sub 過程有兩種方法:

'以下兩個語句都調(diào)用了名為 MyProc 的 Sub 過程。

Call MyProc (FirstArgument, SecondArgument)

MyProc FirstArgument, SecondArgument

注意,當(dāng)使用 Call 語法時,參數(shù)必須在括號內(nèi)。若省略 Call 關(guān)鍵字,則也必須省略參數(shù)兩邊的括號

調(diào)用函數(shù)過程

通常,調(diào)用自行編寫的函數(shù)過程的方法和調(diào)用 Visual Basic 內(nèi)部函數(shù)過程(例如 Abs)的方法一樣;即在表達(dá)式中寫上它的名字。

'下面的語句都調(diào)用函數(shù) ToDec。

Print 10 * ToDec

X = ToDec

If ToDec = 10 Then Debug.Print "Out of Range"

X = AnotherFunction ( 10 * ToDec)

就像調(diào)用 Sub 過程那樣,也能調(diào)用函數(shù)。下面的語句都調(diào)用同一個函數(shù):

Call Year (Now)

Year Now

當(dāng)用這種方法調(diào)用函數(shù)時,Visual Basic 放棄返回值。

調(diào)用其它模塊中的過程

在工程中的任何地方都能調(diào)用其它模塊中的公用過程??赡苄枰付ㄟ@樣的模塊,它包含正在調(diào)用的過程。調(diào)用其它模塊中的過程的各種技巧,取決于該過程是在窗體模塊中、類模塊中還是標(biāo)準(zhǔn)模塊中。

窗體中的過程

所有窗體模塊的外部調(diào)用必須指向包含此過程的窗體模塊。如果在窗體模塊 Form1 包含 SomeSub 過程,則可使用下面的語句調(diào)用 Form1 中的過程:

Call Form1.SomeSub(arguments)

類模塊中的過程

與窗體中調(diào)用過程類似,在類模塊中調(diào)用過程要調(diào)用與過程一致并且指向類實例的變量。例如,DemoClass 是類 Class1 的實例:

Dim DemoClass as New Class1

DemoClass.SomeSub

但是不同于窗體的是,在引用一個類的實例時,不能用類名作限定符。必須首先聲明類的實例為對象變量(在這個例子中是 DemoClass )并用變量名引用它。

標(biāo)準(zhǔn)模塊中的過程

如果過程名是唯一的,則不必在調(diào)用時加模塊名。無論是在模塊內(nèi),還是在模塊外調(diào)用,結(jié)果總會引用這個唯一過程。如果過程僅出現(xiàn)在一個地方,這個過程就是唯一的。

如果兩個以上的模塊都包含同名的過程,那就有必要用模塊名來限定了。在同一模塊內(nèi)調(diào)用一個公共過程就會運行該模塊內(nèi)的過程。例如,對于 Module1 和 Module2 中名為 CommonName 的過程,從 Module2 中調(diào)用 CommonName 則運行 Module2 中的 CommonName 過程,而不是 Module1 中的 CommonName 過程。

從其它模塊調(diào)用公共過程名時必須指定那個模塊。例如,若在 Module1 中調(diào)用 Module2 中的 CommonName 過程,要用下面的語句:

Module2.CommonName (arguments)

Public ? 用于聲明對所有模塊中的所有其它過程都可以使用的過程。?

Private ?用于聲明只能在包含該聲明的模塊中使用的過程。

vb.net過程

可以看到PC()函數(shù)是這樣定義的

Public Sub pc(ByVal a%, ByRef d%, ByRef b%).

ByVal是傳遞值 源數(shù)據(jù)不會被修改,你可以把這個值當(dāng)作自己的局部變量來使用;ByRef是傳遞地址,源數(shù)據(jù)可能被修改,你對這個變量的操作將對你傳入的那個變量產(chǎn)生影響,就像指針的感覺.

------------------------------------------------

而a,b,c初始化分別為2,3,4

a = 2 : b = 3 : c = 4

當(dāng)調(diào)用PC()函數(shù)時

Call pc(a, b, c) ,此時,相當(dāng)于call pc(2,3,4)

由于PC函數(shù)定義的時候,d,c是傳遞地址,可以改變,所以此時d=3,b=4,a不變,還是為2

所以執(zhí)行以下計算的時候,

a = a + 1 =2+1=3(注意,執(zhí)行這句操作的時候,在PC函數(shù)里面a的值改變了為3,影響PC函數(shù)中涉及到a的計算)

b = b + 2 =4+2=6

c = a + d =3+3=6

------------------------

最后按鈕事件里面還有一個輸出,

由于a在PC()函數(shù)里面是值傳遞,所以不會受到影響,故a=2;

b為一個局部變量,不影響,故b=3;

c=6

--------------

調(diào)試程序的時候看的有點亂了,也不知道我這樣分析有沒有錯,你自己也看看吧,互相學(xué)習(xí)

網(wǎng)站欄目:vb.net的過程 vbnet with
瀏覽地址:http://muchs.cn/article0/doshcoo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計、全網(wǎng)營銷推廣、網(wǎng)站制作網(wǎng)站改版、自適應(yīng)網(wǎng)站、動態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)