自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

VB.NET函數(shù)寶典手把手教會你

開發(fā) 后端
這里介紹VB.NET函數(shù),包括介紹模塊化是在程序設計發(fā)展到一定程度的時候誕生的程序設計方法和在進行變量聲明時,變量聲明的位置決定了這個變量的作用范圍。

經(jīng)過長時間學習VB.NET函數(shù),于是和大家分享一下,看完本文你肯定有不少收獲,希望本文能教會你更多東西。

在程序設計過程中,隨著代碼量的不斷增加,會出現(xiàn)很多地方使用同樣代碼的情況。為了能夠減少同樣代碼的編寫,ASP.NET允許使用一些小的程序?qū)⒅貜偷拇a只寫一次,其他需要使用這段代碼的地方調(diào)用這個小程序就可以了。

在ASP.NET中,實現(xiàn)這種小程序的方式有兩種:過程和函數(shù)。

模塊化的優(yōu)點

模塊化是在程序設計發(fā)展到一定程度的時候誕生的程序設計方法。在早期的程序設計過程中,由于機器的硬件配置低,所以程序的運行速度和效率十分重要,因此早期的程序設計人員會大量使用各種技巧保證程序的快速運行,而這些技巧導致的最直接后果就是程序的結構混亂,很難閱讀。

隨著機器硬件的不斷更新,這些編程技巧所提高的程序運行速度已經(jīng)微不足道,這時提高程序的可讀性就變得十分重要,于是就出現(xiàn)了模塊化程序設計方法。

模塊化程序設計方法的特點是:在編寫程序之前,把程序的功能分解成若干個小的任務,并把這些小任務看成是一個一個的模塊。當各個模塊編寫完成之后,就可以把這些模塊編譯成為一個大型的程序。由于每個模塊都有自己獨立的功能,所以可以把這些模塊分配給很多程序員來完成;而每個模塊的功能都是詳細定義的,所以可以建立完善的文檔,使得程序的可讀性大大提高。

VB.NET函數(shù)

VB.NET支持子過程和函數(shù),它們都可以根據(jù)需要設置參數(shù)。它們之間惟一的區(qū)別是函數(shù)可以有返回值而子過程沒有。

子過程的定義方式為:

  1. Sub subname ([argument1[,…, argumentn]])  
  2. [statements]  
  3. End Sub 

對于子過程的調(diào)用方式是直接調(diào)用過程名subname。如果有參數(shù),就在后面按照次序?qū)?shù)在括號中寫好。用一個子過程顯示對一個用戶的問候信息:

  1. <script language="vb" runat="server"> 
  2. Sub SayHello(strUserName as String)  
  3. Response.Write ("Hello!" & strUserName & "<br>")  
  4. End Sub  
  5. </script> 
  6. <%  
  7. SayHello("Cindy")  
  8. %> 

在上面的例子中,有下面幾點需要說明:
(1) 在第1行~第5行使用<Script>標記加入程序代碼。
(2) 在第2行~第4行定義了一個SayHello子過程。這個過程帶有一個參數(shù)strUserName,并在第3行輸出。
(3) 在第7行調(diào)用了這個子過程。在調(diào)用的時候,傳入?yún)?shù)的值是“Cindy”。

VB.NET函數(shù)的定義方式為:

  1. Function functionname ([argument1[,…, argumentn]])  
  2. [statements]  
  3. [Return value]  
  4. [statements]  
  5. End Function 

對于函數(shù)的調(diào)用方式是調(diào)用函數(shù)名functionname()。如果有參數(shù),就按照次序?qū)懺诶ㄌ栔小S靡粋€函數(shù)計算兩個整數(shù)的和。

  1. <script language="vb" runat="server"> 
  2. Function Add(intData1 as Integer,intData2 as Integer) as Integer  
  3. intData1intData1=intData1+intData2  
  4. Return intData1  
  5. End Function  
  6. </script> 
  7. <%  
  8. Dim intTemp1,intTemp2 as Integer  
  9. intTemp1=2 
  10. intTemp2=3 
  11. Response.Write(Add(intTemp1,intTemp2))  
  12. Response.Write("<br>")  
  13. Response.Write(intTemp1)  
  14. %> 

在上面的程序中,有下面幾點需要說明:
(1) 在第2行~第5行定義了一個函數(shù)Add。這個函數(shù)帶有兩個參數(shù):intData1和intData2,并把一個整數(shù)作為返回值。
(2) 在第3行把參數(shù)intData1與intData2的和放到intData1中,并在第4行把intData1作為結果返回。
(3) 在第11行調(diào)用了這個函數(shù),并把結果顯示出來。

在上面的子過程和函數(shù)的講解過程中,可以看出都可以采用帶參數(shù)的方式來增加子過程和函數(shù)的靈活性。需要說明的是,參數(shù)的傳遞有兩種方式:通過值傳遞參數(shù)和通過引用傳遞參數(shù)。

在調(diào)用子過程和函數(shù)的時候,如果沒有明確地指出,所有的參數(shù)都是通過值進行傳遞的。所謂通過值進行傳遞,就是把參數(shù)的值復制到參數(shù)中。例如例2.12中第11行的Add(intTemp1,intTemp2),就是通過值進行傳遞的好例子。在真正執(zhí)行第2行~第5行定義的Add函數(shù)時,是把intTemp1的值2復制給了intData1,把intTemp2的值3復制給了intData2。在第3行把intData1和intData2的和賦值給intData1的時候,intData1的值變成了5,但是這個時候,intTemp1的值仍然是2,不是5(通過第13行的執(zhí)行可以看出來),這就是通過值傳遞參數(shù)。這時,intData1和intTemp1是兩個不同的變量,在內(nèi)存中占用不同的存儲空間。

在函數(shù)和子過程中,使用關鍵字ByVal來顯式表示通過值傳遞參數(shù)。也就是說,如果要用顯式的方式進行定義,第2行的函數(shù)定義可以寫成:

  1. Function Add(ByVal  intData1 as Integer, ByVal  intData2 as Integer) as Integer 

默認的情況是采用通過值傳遞參數(shù)。那么什么是通過引用傳遞參數(shù)呢?請先看下面的例子。用一個函數(shù)計算兩個整數(shù)的和。

  1. <script language="vb" runat="server"> 
  2. Function Add(ByRef intData1 as Integer,ByRef intData2 as Integer) as Integer  
  3. intData1intData1=intData1+intData2  
  4. Return intData1  
  5. End Function  
  6. </script> 
  7. <%  
  8. Dim intTemp1,intTemp2 as Integer  
  9. intTemp1=2 
  10. intTemp2=3 
  11. Response.Write(Add(intTemp1,intTemp2))  
  12. Response.Write("<br>")  
  13. Response.Write(intTemp1)  
  14. %> 

在這里使用了ByRef關鍵字表示這時的參數(shù)是通過引用進行傳遞的。執(zhí)行這個程序就會發(fā)現(xiàn),在程序執(zhí)行完之后,不但intData1的值變成了5,同時intTemp1的值也變成了5。

通過引用傳遞參數(shù)的方法是把參數(shù)的地址傳遞進去。在第11行進行傳遞的時候,不是把intTemp1的值復制給intData1,把intTemp2的值復制給intData2,而是把intTemp1的地址給了intData1的地址,把intTemp2的地址給了intData2的地址。在傳遞成功之后,intData1就是intTemp1,intData2就是intTemp2。所以在第3行intData1的值發(fā)生變化時,intTemp1的值也同時發(fā)生了變化。

變量的作用域

在進行變量聲明時,變量聲明的位置決定了這個變量的作用范圍。在一個過程或VB.NET函數(shù)外聲明的變量是全局變量,對本程序內(nèi)部所有的過程和函數(shù)都起作用;而在一個過程或函數(shù)內(nèi)部聲明的變量是局部變量,只對本過程或函數(shù)起作用。

下面通過一個例子說明全局變量和局部變量的區(qū)別。全局變量和局部變量的使用。

  1. <script language="vb" runat="server"> 
  2. Dim strGlobal as String="global" 
  3. Sub SayHello  
  4. Dim strTemp as String="hello!" 
  5. Response.Write (strTemp & "<br>")  
  6. Response.Write (strGlobal & "<br>")  
  7. if strGlobal<>"" then  
  8. Dim strTemp1 as String="hello cindy!" 
  9. Response.Write (strTemp1 & "<br>")  
  10. end if  
  11. 'Response.Write (strTemp1 & "<br>")  
  12. End Sub  
  13. </script> 
  14. <%  
  15. SayHello  
  16. %> 

上面的例子中,有下面幾點需要說明:

(1) 第2行聲明的變量strGlobal定義在所有的VB.NET函數(shù)或者過程之外,所以是一個全局變量。由于在定義這個變量的時候就為這個變量賦值為“global”,所以,在后面的程序中,第一次使用這個變量時這個變量的值就是“global”。

(2) 第3行~第12行定義了一個子過程SayHello。在這個過程中,首先在第4行定義了一個變量strTemp,由于這個變量是定義在子過程中的,所以這個變量是一個局部變量。在第5行顯示這個變量的值的時候,會顯示一個“hello!”字符串。

(3) 第6行要顯示strGlobal的值,由于這是一個全局變量,所以會顯示第1行賦值的“global”。

(4) 第7行~第10行定義了一個If/Endif代碼塊,在這個代碼塊中,定義了一個塊級局部變量strTemp1(第8行)。由于這個變量是定義在代碼塊中的,所以只在這個代碼塊中起作用。所以在第9行要顯示它的值的時候,會顯示“hello cindy!”。而如果取消第11行的注釋,系統(tǒng)將會通告strTemp1變量沒有定義。

通過上面的例子可以看出,在編寫程序的時候,要時刻注意變量的作用域的問題。因為在不同模塊中修改全局變量會導致模塊之間相互影響,違反了進行模塊化程序設計的初衷。所以要設計好的程序,就應該盡量減少全局變量的使用。

【編輯推薦】

  1. VB.NET動態(tài)控件數(shù)組三部曲
  2. 全方位分析VB.NET編碼規(guī)范
  3. 剖析VB.NET Process的屬性與對象
  4. VB.NET SendKeys方法與鍵入值
  5. 用實例講述VB.NET Process類
責任編輯:佚名 來源: Vlan9
相關推薦

2009-11-02 15:33:53

VB.NET Data

2009-10-28 14:25:17

VB.NET Sock

2009-12-11 09:04:10

Windows搭建Li

2009-10-27 16:05:52

VB.NET File

2009-11-02 13:14:18

VB.NET函數(shù)

2009-12-21 11:36:24

Linux啟動加密

2021-06-16 09:02:43

Pythonjieba分詞Python基礎

2021-12-09 10:24:47

Javascript 高階函數(shù)前端

2010-07-30 10:41:23

DB2打補丁

2020-12-13 11:38:09

Go語言clac包

2009-11-02 09:43:01

VB.NET構造函數(shù)

2009-10-27 13:34:32

VB.NET WEB服

2009-11-02 15:08:58

VB.NET Obje

2009-11-03 09:48:47

VB.NET構造

2009-10-15 17:50:48

VB.NET Spli

2010-08-17 14:29:15

2009-10-28 17:08:57

VB.NET數(shù)據(jù)庫開發(fā)

2009-10-26 13:36:58

VB.NET Spli

2009-10-30 09:45:55

VB.NET Web

2009-10-21 10:45:50

VB.NET Quic
點贊
收藏

51CTO技術棧公眾號