新聞中心
VB.NET編程語(yǔ)言是當(dāng)下一款應(yīng)用比較頻繁的開發(fā)語(yǔ)言。其功能非常強(qiáng)大。今天我們就可以通過(guò)對(duì)VB.NET遞歸過(guò)程的一些使用技巧來(lái)對(duì)這門語(yǔ)言進(jìn)行一個(gè)詳細(xì)的解讀,從而掌握這一語(yǔ)言的特點(diǎn)。

創(chuàng)新互聯(lián)長(zhǎng)期為近千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為西湖企業(yè)提供專業(yè)的成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì),西湖網(wǎng)站改版等技術(shù)服務(wù)。擁有十多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
VB.NET遞歸過(guò)程是指調(diào)用自身的過(guò)程。通常,這不是編寫 Visual Basic 代碼的最有效方法。
下面的過(guò)程使用遞歸計(jì)算其原始參數(shù)的階乘:
- Visual Basic
- Function factorial(ByVal n As Integer) As Integer
- If n <= 1 Then
- Return 1
- Else
- Return factorial(n - 1) * n
- End If
- End Function
使用VB.NET遞歸過(guò)程時(shí)的注意事項(xiàng) #t#
限制條件。您在設(shè)計(jì)一個(gè)遞歸過(guò)程時(shí),必須至少測(cè)試一個(gè)可以終止此遞歸的條件,并且還必須對(duì)在合理的遞歸調(diào)用次數(shù)內(nèi)未滿足此類條件的情況進(jìn)行處理。如果沒(méi)有一個(gè)在正常情況下可以滿足的條件,則過(guò)程將陷入執(zhí)行無(wú)限循環(huán)的高度危險(xiǎn)之中。
內(nèi)存使用。應(yīng)用程序的局部變量所使用的空間有限。過(guò)程在每次調(diào)用它自身時(shí),都會(huì)占用更多的內(nèi)存空間以保存其局部變量的附加副本。如果這個(gè)進(jìn)程無(wú)限持續(xù)下去,最終會(huì)導(dǎo)致 StackOverflowException 錯(cuò)誤。
效率。幾乎在任何情況下都可以用循環(huán)替代遞歸。循環(huán)不會(huì)產(chǎn)生傳遞變量、初始化附加存儲(chǔ)空間和返回值所需的開銷,因此使用循環(huán)相對(duì)于使用遞歸調(diào)用可以大幅提高性能。
相互遞歸。如果兩個(gè)過(guò)程相互調(diào)用,可能會(huì)使性能變差,甚至產(chǎn)生無(wú)限循環(huán)。此類設(shè)計(jì)所產(chǎn)生的問(wèn)題與單個(gè)遞歸過(guò)程所產(chǎn)生的問(wèn)題相同,但更難檢測(cè)和調(diào)試。
調(diào)用時(shí)使用括號(hào)。當(dāng) Function 過(guò)程以遞歸方式調(diào)用它自身時(shí),您必須在過(guò)程名稱后加上括號(hào)(即使不存在參數(shù)列表)。否則,函數(shù)名就會(huì)被視為表示函數(shù)的返回值。
測(cè)試。在編寫VB.NET遞歸過(guò)程時(shí),應(yīng)非常細(xì)心地進(jìn)行測(cè)試,以確保它總是能滿足某些限制條件。您還應(yīng)該確保不會(huì)因?yàn)檫^(guò)多的遞歸調(diào)用而耗盡內(nèi)存。
分享文章:VB.NET遞歸過(guò)程使用注意事項(xiàng)
地址分享:http://www.dlmjj.cn/article/dhgecpi.html


咨詢
建站咨詢
