2011-11-18 6 views
3

Я видел other posts, но они в основном в C#. Для тех, кто хочет изучить рекурсию, увидеть реальные примеры работы в VB.Net может оказаться полезным. Еще сложнее попытаться расшифровать и convert C#, если кто-то просто проталкивает их программирование в VB.Net. Я нашел this post, который я понимаю сейчас, но если бы было сообщение о примерах VB.Net, возможно, я смог быстрее его забрать. Это отчасти потому, что я задаю этот вопрос:Примеры рекурсивных функций в VB.Net

Может кто-нибудь могут показать некоторые простые примеры функций рекурсии в VB.Net?

+0

Вы могли бы попробуйте сделать рекурсивный метод, применяя простые математические уравнения к формальному методу –

ответ

3

Это один из вики статьи велик

Sub walkTree(ByVal directory As IO.DirectoryInfo, ByVal pattern As String) 
For Each file In directory.GetFiles(pattern) 
    Console.WriteLine(file.FullName) 
Next 
For Each subDir In directory.GetDirectories 
    walkTree(subDir, pattern) 
Next 
End Sub 
3

Взгляните на статью MSDN - Recursive Procedures (Visual Basic). Эта статья поможет вам понять основы рекурсии.

Пожалуйста, обратитесь следующие ссылки:

  1. Recursive function to read a directory structure
  2. Recursion, why it's cool.
+0

Я видел комментарий в другом посте и задавался вопросом, правда ли это, что только вам действительно нужно написать рекурсивную функцию для решения проблемы, которая не решена с помощью итерации, происходит циклический переход через каталог или файловую систему и цикл через вложенные элементы управления? –

+0

@kcbeard: Нет, это не так. Существует множество случаев, когда рекурсия полезна (я могу думать о десятке или более в приложении, над которым я сейчас работаю). Например, если вы хотите обрабатывать объекты, которые хранятся внутри дерева в древовидной структуре, то рекурсия определенно является вашим другом. –

+0

@competent_tech: В какой момент в веб-приложении рекурсивная функция препятствует ее производительности. Будет ли цикл вложенных элементов управления нормальным нас рекурсивной функцией? –

1

Один из классиков

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click 
    Try 
     Label1.Text = Factorial(20).ToString("n0") 
    Catch ex As Exception 
     Debug.WriteLine("error") 
    End Try 
End Sub 

Function Factorial(ByVal number As Long) As Long 
    If number <= 1 Then 
     Return (1) 
    Else 
     Return number * Factorial(number - 1) 
    End If 
End Function 'Factorial 

В .Net 4.0 вы можете использовать BigInteger вместо Лонга ...

0

Это пример рекурсии прямо из MSDN для VB.NET 2012:

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

Reference

Смежные вопросы