国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

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

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

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

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

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

模塊化的優(yōu)點(diǎn)

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

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

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

VB.NET函數(shù)

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

子過程的定義方式為:

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

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

  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. %> 

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

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

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

對(duì)于函數(shù)的調(diào)用方式是調(diào)用函數(shù)名functionname()。如果有參數(shù),就按照次序?qū)懺诶ㄌ?hào)中。用一個(gè)函數(shù)計(jì)算兩個(gè)整數(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. %> 

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

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

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

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

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

默認(rèn)的情況是采用通過值傳遞參數(shù)。那么什么是通過引用傳遞參數(shù)呢?請(qǐng)先看下面的例子。用一個(gè)函數(shù)計(jì)算兩個(gè)整數(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關(guān)鍵字表示這時(shí)的參數(shù)是通過引用進(jìn)行傳遞的。執(zhí)行這個(gè)程序就會(huì)發(fā)現(xiàn),在程序執(zhí)行完之后,不但intData1的值變成了5,同時(shí)intTemp1的值也變成了5。

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

變量的作用域

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

下面通過一個(gè)例子說明全局變量和局部變量的區(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. %> 

上面的例子中,有下面幾點(diǎn)需要說明:

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

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

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

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

通過上面的例子可以看出,在編寫程序的時(shí)候,要時(shí)刻注意變量的作用域的問題。因?yàn)樵诓煌K中修改全局變量會(huì)導(dǎo)致模塊之間相互影響,違反了進(jìn)行模塊化程序設(shè)計(jì)的初衷。所以要設(shè)計(jì)好的程序,就應(yīng)該盡量減少全局變量的使用。

【編輯推薦】

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

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-11-02 13:14:18

VB.NET函數(shù)

2009-10-27 16:05:52

VB.NET File

2009-12-21 11:36:24

Linux啟動(dòng)加密

2021-06-16 09:02:43

Pythonjieba分詞Python基礎(chǔ)

2021-12-09 10:24:47

Javascript 高階函數(shù)前端

2009-10-27 13:34:32

VB.NET WEB服

2009-11-02 15:08:58

VB.NET Obje

2010-07-30 10:41:23

DB2打補(bǔ)丁

2020-12-13 11:38:09

Go語言clac包

2009-11-02 09:43:01

VB.NET構(gòu)造函數(shù)

2009-11-03 09:48:47

VB.NET構(gòu)造

2010-08-17 14:29:15

2009-10-15 17:50:48

VB.NET Spli

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
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

91精品久久久久久久久| 中文视频一区| 激情丁香综合五月| www.日韩不卡电影av| 依人在线免费视频| 国产欧美一区二区色老头 | 国产v综合ⅴ日韩v欧美大片| 日本电影全部在线观看网站视频| 激情欧美一区二区三区在线观看| 欧美人与性动交a欧美精品| 男女污污视频在线观看| 成人黄色av电影| 国产欧美日韩综合一区在线观看 | 91在线无精精品一区二区| 91caoporn在线| 中文字幕制服丝袜一区二区三区 | 亚洲一级二级| 久久久久在线观看| 日本欧美电影在线观看| 精品成人久久av| 久久精品免费网站| 成人免费观看视频| 国产91av视频在线观看| 免费永久网站黄欧美| 国产视频福利一区| 美女网站色精品尤物极品姐弟| 亚洲视频免费一区| 成人区精品一区二区不卡| 欧美日韩在线精品一区二区三区激情 | 欧美成人一区二区三区片免费| 免费男女羞羞的视频网站中文字幕| 久久综合久久综合九色| 99精品免费在线观看| 国产精品美女视频| 日韩欧美99| 国产精品毛片视频| 日本91av在线播放| 日本午夜一区| 日本不卡一二三区| 国产精品一区二区x88av| 中文字幕无码不卡免费视频| 亚洲精品乱码久久久久| 黄页网站在线播放| 精品国产一区久久| 日本国产一区| 国产精品v欧美精品∨日韩| 性伦欧美刺激片在线观看| 正在播放久久| 久久久精品影视| 欧美日韩国产亚洲沙发| 精品国产人成亚洲区| 成年人在线视频免费观看| 一区二区三区资源| 香蕉521av成人网| 日韩欧美综合在线视频| 理论片午夜视频在线观看| www.国产精品一二区| 欧美区亚洲区| 色综合天天色综合| 欧美日韩一区二区三区在线| 欧美三区四区| 91性高湖久久久久久久久_久久99| 老司机免费视频一区二区三区| 99re免费99re在线视频手机版| 日韩在线导航| 国产精品三级久久久久三级| 亚洲综合图片| 欧美午夜激情在线| 大片免费在线看视频| 久久不射电影网| 久久aⅴ国产紧身牛仔裤| 亚洲视频在线a| 亚洲美女av电影| 黄色另类av| 日韩子在线观看| 好吊色欧美一区二区三区| 亚洲一区二区中文在线| 午夜视频在线观看精品中文 | 日韩伦理电影网站| 一区二区三区成人在线视频| 国产电影一区| 欧美s码亚洲码精品m码| 亚洲欧美成人在线| 国产91对白在线观看九色| 88xx成人免费观看视频库 | 日韩成人av网站| 欧美一区二区在线观看| 日韩黄色免费电影| yellow在线观看网址| 欧美视频在线第一页| 中文字幕亚洲一区在线观看| 不卡一卡二卡三乱码免费网站| 日韩免费在线电影| 国产在线视频你懂| 国产精品视频精品视频| 欧美三级日本三级少妇99| 日韩精品电影在线观看| 日韩影片中文字幕| 妺妺窝人体色www在线观看| 欧美精品激情blacked18| 午夜精品福利一区二区三区av| 欧美日韩国产欧| 色综合桃花网| 国产videos| 精品欧美一区二区三区久久久| 亚洲国产精品系列| 亚洲国产精品成人综合 | 日韩三级免费观看| 国产一区二区三区四区五区美女| 福利一区二区免费视频| 亚州av中文字幕在线免费观看| 久久亚洲一区二区| 久久99久国产精品黄毛片入口| 欧美视频一区二区三区在线观看| 一区二区三区成人精品| 国产69久久| 一二三四中文字幕| 亚洲女同女同女同女同女同69| 影音先锋久久久| 欧美在线亚洲综合一区| 羞羞答答成人影院www| 欧美a级成人淫片免费看| 老司机成人在线| 欧美亚洲国产精品久久| 亚洲第一黄色| 国产福利一区在线| 久久蜜臀精品av| 亚洲观看高清完整版在线观看| 亚洲va欧美va人人爽午夜| 欧美又粗又大又爽| 精品香蕉一区二区三区| 久久成人精品视频| 国产精品综合网站| 亚洲小说欧美另类激情| 97国产精东麻豆人妻电影| 啊啊啊啊啊好爽| 在线你懂的视频| 三上亚洲一区二区| 国产成人免费视频网站视频社区| 成人午夜在线| 视频一区欧美| 日av在线不卡| 99久久免费精品高清特色大片| 国产精品久久久久久久午夜片| 五月综合激情婷婷六月色窝| 精品免费一区二区三区| 欧美成人精品一区| caoporn国产精品免费公开| 国产精品亚洲天堂| 橘梨纱av一区二区三区在线观看| 巨大荫蒂视频欧美另类大| 六九午夜精品视频| 外国成人免费视频| 波多野结衣在线aⅴ中文字幕不卡| 一区二区在线观看视频| 亚洲成人av一区| 亚洲电影在线观看| 国产精品自产拍在线观看| 一区国产精品| 青青操视频在线| 大陆精大陆国产国语精品| 亚洲久久一区| 激情91久久| 91国产一区| 国产精品91一区二区三区| 久久久久久久久岛国免费| 久9re热视频这里只有精品| 日韩久久99| 美女高潮视频在线看| 国产女人在线观看| 免费观看久久久久| theporn国产在线精品| 久久性色av| 婷婷丁香久久五月婷婷| 欧美第一黄网免费网站| 日本中文不卡| 欧美精品a∨在线观看不卡 | 搞黄网站在线观看| 国产jizz| 国产视频一视频二| 一区不卡字幕| 欧美日韩亚洲免费| 精品一区2区三区| 国产在线久久久| 国产精品2018| 国产在线视频2019最新视频| 欧美极品少妇xxxxx| 国产日韩欧美综合| 成人频在线观看| 9999精品视频| 第四色成人网| 亚洲国产一区二区三区高清| 精品午夜一区二区三区在线观看| 亚洲永久在线| 日韩一区二区免费看| 99久久夜色精品国产网站| 狠狠做深爱婷婷久久综合一区| 日本大香伊一区二区三区| 日韩精品免费电影| 51色欧美片视频在线观看|