成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

VB.NET函數寶典手把手教會你

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

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

在程序設計過程中,隨著代碼量的不斷增加,會出現很多地方使用同樣代碼的情況。為了能夠減少同樣代碼的編寫,ASP.NET允許使用一些小的程序將重復的代碼只寫一次,其他需要使用這段代碼的地方調用這個小程序就可以了。

在ASP.NET中,實現這種小程序的方式有兩種:過程和函數。

模塊化的優點

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

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

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

VB.NET函數

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

子過程的定義方式為:

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

對于子過程的調用方式是直接調用過程名subname。如果有參數,就在后面按照次序將參數在括號中寫好。用一個子過程顯示對一個用戶的問候信息:

  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子過程。這個過程帶有一個參數strUserName,并在第3行輸出。
(3) 在第7行調用了這個子過程。在調用的時候,傳入參數的值是“Cindy”。

VB.NET函數的定義方式為:

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

對于函數的調用方式是調用函數名functionname()。如果有參數,就按照次序寫在括號中。用一個函數計算兩個整數的和。

  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行定義了一個函數Add。這個函數帶有兩個參數:intData1和intData2,并把一個整數作為返回值。
(2) 在第3行把參數intData1與intData2的和放到intData1中,并在第4行把intData1作為結果返回。
(3) 在第11行調用了這個函數,并把結果顯示出來。

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

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

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

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

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

  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關鍵字表示這時的參數是通過引用進行傳遞的。執行這個程序就會發現,在程序執行完之后,不但intData1的值變成了5,同時intTemp1的值也變成了5。

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

變量的作用域

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

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

  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函數或者過程之外,所以是一個全局變量。由于在定義這個變量的時候就為這個變量賦值為“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行的注釋,系統將會通告strTemp1變量沒有定義。

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

【編輯推薦】

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

2009-10-28 14:25:17

VB.NET Sock

2009-11-02 15:33:53

VB.NET Data

2009-12-11 09:04:10

Windows搭建Li

2009-11-02 13:14:18

VB.NET函數

2009-10-27 16:05:52

VB.NET File

2009-12-21 11:36:24

Linux啟動加密

2021-06-16 09:02:43

Pythonjieba分詞Python基礎

2021-12-09 10:24:47

Javascript 高階函數前端

2009-10-27 13:34:32

VB.NET WEB服

2009-11-02 15:08:58

VB.NET Obje

2020-12-13 11:38:09

Go語言clac包

2010-07-30 10:41:23

DB2打補丁

2009-11-02 09:43:01

VB.NET構造函數

2009-11-03 09:48:47

VB.NET構造

2010-08-17 14:29:15

2009-10-21 10:45:50

VB.NET Quic

2009-10-30 09:45:55

VB.NET Web

2009-10-15 17:50:48

VB.NET Spli

2009-10-28 17:08:57

VB.NET數據庫開發

2009-10-26 13:36:58

VB.NET Spli
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产一区二区在线免费播放 | 成人免费av| 色综合天天综合网国产成人网 | 国产日韩欧美一区二区 | 久久蜜桃精品 | www.黄色在线观看 | 久久午夜精品 | 一区二区三区高清 | 一区二区国产精品 | 欧美日韩在线综合 | 九九导航 | 久久精品国产一区二区电影 | 久草视 | 精品一二三区在线观看 | 97av视频在线观看 | 国产精品久久久一区二区三区 | 在线一区视频 | 欧美激情久久久 | 久久这里只有精品首页 | 国产午夜精品久久 | 亚洲免费视频播放 | 美女天堂av| 亚洲第一网站 | 老司机67194精品线观看 | 久草视 | 91视频免费黄 | 久久网站黄| 色综合久久88色综合天天 | 亚洲精品久 | 亚洲一区二区在线视频 | 国产永久免费 | h视频在线观看免费 | 精品久久久久久久久久 | 一级a性色生活片久久毛片 午夜精品在线观看 | av大全在线 | 拍真实国产伦偷精品 | 中文字幕一区二区三 | 中文字幕亚洲精品 | 91高清视频| 日日操夜夜操天天操 | 日本一二三区高清 |