Ver Mensaje Individual
  #3 (permalink)  
Antiguo 21/06/2012, 16:27
alexg88
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años, 6 meses
Puntos: 344
Respuesta: Se puede simplificar este codigo?

Buenas,

Puedes aprovechar los delegados de .NET y la clase Dictionary para ello:

Código vb:
Ver original
  1. Module Module1
  2.  
  3.     Dim functions As New Dictionary(Of String, Action) From {
  4. {"Caracol", AddressOf Caracol}, {"Carcasa", AddressOf Carcasa}}
  5.  
  6.  
  7.     Public Sub Caracol()
  8.  
  9.         Console.WriteLine("Hola Caracol")
  10.  
  11.     End Sub
  12.  
  13.     Public Sub Carcasa()
  14.  
  15.         Console.WriteLine("Hola Carcasa")
  16.     End Sub
  17.  
  18.     Sub Main()
  19.         AEscojer(Console.ReadLine)
  20.     End Sub
  21.  
  22.    
  23.  
  24.     Public Sub AEscojer(ByVal Escojido As String)
  25.  
  26.         If functions.ContainsKey(Escojido) Then
  27.             functions(Escojido)()
  28.         End If
  29.     End Sub
  30.  
  31. 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