Buenas,
Puedes aprovechar los delegados de .NET y la clase Dictionary para ello:
Código vb:
Ver originalModule Module1
Dim functions As New Dictionary(Of String, Action) From {
{"Caracol", AddressOf Caracol}, {"Carcasa", AddressOf Carcasa}}
Public Sub Caracol()
Console.WriteLine("Hola Caracol")
End Sub
Public Sub Carcasa()
Console.WriteLine("Hola Carcasa")
End Sub
Sub Main()
AEscojer(Console.ReadLine)
End Sub
Public Sub AEscojer(ByVal Escojido As String)
If functions.ContainsKey(Escojido) Then
functions(Escojido)()
End If
End Sub
End Module
Otra forma sería mediante Reflexión (puedes ejecutar un método teniendo el nombre del método como string), pero creo que con lo de arriba es suficiente