Aracılığıyla paylaş


Özyinelemeli yordamları (Visual Basic)

A özyinelemeli kendi kendini çağıran bir yordam kullanılır.Genel olarak, bu en etkili yolu yazmak için değil Visual Basic kod.

Aşağıdaki yordam, özyineleme özgün argüman çarpımını hesaplamak için kullanır.

Function factorial(ByVal n As Integer) As Integer
    If n <= 1 Then
        Return 1
    Else
        Return factorial(n - 1) * n
    End If
End Function

Özyinelemeli yordamlarıyla ilgili önemli noktalar

Sınırlama.Özyineleme sonlandırabilir için en az bir koşul sınamak için özyinelemeli yordamı tasarlamanız gerekir ve makul bir Özyinelemeli çağrı sayısı içinde böyle bir koşul burada karşılanan durum işlemesi gerekir.Sakın karşılanabileceği en az bir koşul yürütülmesi sonsuz bir döngüde yüksek risk sizin yordamını çalıştırır.

Bellek kullanımı.Uygulamanızın sınırlı miktarda alan yerel değişkenler için vardır.Kendisi bir yordam çağrıları her zaman daha fazla o alanı yerel değişkenleri ek kopyalarını kullanır.Bu işlem sonsuza kadar devam ederse, sonunda neden bir StackOverflowException hata.

Verimlilik.Hemen hemen her zaman bir döngü için özyineleme yerine kullanabilirsiniz.Bir döngü ek depolama başlatılıyor ve değerleri döndürme argümanları başlatır, yükü yok.Performansınızı yinelemeli çağrılar daha iyi olabilir.

Karşılıklı özyineleme.Diğer iki yordam çağrısı çok düşük performans veya hatta bir sonsuz döngüye gözlemlemek.Bu tür bir tasarım tek özyinelemeli yordam olarak aynı sorunları sunar, ancak algılamak ve hata ayıklamak için zor olabilir.

Parantez içinde arama.Zaman bir Function yordam çağrıları kendini yinelemeli olarak, hiçbir bağımsız değişken listesi bile, parantez, yordam adıyla izlemeniz gerekir.Aksi durumda, işlev adı alınır temsil eden işlevin dönüş değeri olarak.

Sınama.Özyinelemeli yordamı yazarsanız, onu dikkatle her zaman bazı kısıtlayıcı koşulu karşıladığından emin olmak için sınamanız gerekir.Ayrıca, bellek için Özyinelemeli çağrı sayısı çok fazla olması nedeniyle çalışamaz emin olmalısınız.

Ayrıca bkz.

Görevler

Sorun giderme yordamları (Visual Basic)

Özel sorun giderme: System.StackOverflowException

Başvuru

StackOverflowException

Kavramlar

Visual Basic'teki yordamlar

Alt yordamlar (Visual Basic)

Fonksiyon yordamları (Visual Basic)

Özellik yordamlarını (Visual Basic)

Operatör yordamları (Visual Basic)

Yordam parametreleri ve bağımsız değişkenler (Visual Basic)

(Visual Basic) aşırı yordamı

Döngü yapıları (Visual Basic)