VB.NET遞歸過程應(yīng)用重點(diǎn)因素總結(jié)
VB.NET編程語言是由微軟公司推出的一款***平臺(tái)技術(shù),其應(yīng)用機(jī)制與JAVA相同,而且其是一款真正的面向?qū)ο笳Z言,支持繼承性,它的使用方式靈活,開發(fā)人員可以將其與任一.NET語言進(jìn)行交互使用,提高編程效率。
VB.NET遞歸過程是指調(diào)用自身的過程。通常,這不是編寫 Visual Basic 代碼的最有效方法。
下面的過程使用遞歸計(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
使用遞歸過程時(shí)的注意事項(xiàng)
限制條件。您在設(shè)計(jì)一個(gè)VB.NET遞歸過程時(shí),必須至少測(cè)試一個(gè)可以終止此遞歸的條件,并且還必須對(duì)在合理的遞歸調(diào)用次數(shù)內(nèi)未滿足此類條件的情況進(jìn)行處理。如果沒有一個(gè)在正常情況下可以滿足的條件,則過程將陷入執(zhí)行無限循環(huán)的高度危險(xiǎn)之中。#t#
內(nèi)存使用。應(yīng)用程序的局部變量所使用的空間有限。過程在每次調(diào)用它自身時(shí),都會(huì)占用更多的內(nèi)存空間以保存其局部變量的附加副本。如果這個(gè)進(jìn)程無限持續(xù)下去,最終會(huì)導(dǎo)致 StackOverflowException 錯(cuò)誤。
效率。幾乎在任何情況下都可以用循環(huán)替代遞歸。循環(huán)不會(huì)產(chǎn)生傳遞變量、初始化附加存儲(chǔ)空間和返回值所需的開銷,因此使用循環(huán)相對(duì)于使用遞歸調(diào)用可以大幅提高性能。
相互遞歸。如果兩個(gè)過程相互調(diào)用,可能會(huì)使性能變差,甚至產(chǎn)生無限循環(huán)。此類設(shè)計(jì)所產(chǎn)生的問題與單個(gè)遞歸過程所產(chǎn)生的問題相同,但更難檢測(cè)和調(diào)試。
調(diào)用時(shí)使用括號(hào)。當(dāng) Function 過程以遞歸方式調(diào)用它自身時(shí),您必須在過程名稱后加上括號(hào)(即使不存在參數(shù)列表)。否則,函數(shù)名就會(huì)被視為表示函數(shù)的返回值。
測(cè)試。在編寫VB.NET遞歸過程時(shí),應(yīng)非常細(xì)心地進(jìn)行測(cè)試,以確保它總是能滿足某些限制條件。您還應(yīng)該確保不會(huì)因?yàn)檫^多的遞歸調(diào)用而耗盡內(nèi)存。