Visual Basic.NET - Ejecutar Funciones tomando el nombre desde una tabla

 
Vista:

Ejecutar Funciones tomando el nombre desde una tabla

Publicado por Fernanda (28 intervenciones) el 19/04/2023 03:05:07
Hola,
Tengo una tabla con el nombre funciones y necesito que después de rescatar los nombres, cada una de esas funciones se pueda ejecutar.

Private sub EjecutaFunciones

Dim dsTable As DataSet = getDataset("Select NombreFuncion from TablaFunciones")
If dsTable.Tables.Count = 1 AndAlso dsTable.Tables(0).Rows.Count > 0 Then
For Each dr As DataRow In dsTable.Tables(0).Rows
Dim NombreFuncion As String = dr("NombreFuncion")

call nombreFuncion (NombreFuncion = PrimeraFuncion) --> esto es lo que necesito

Next
End Sub


Function PrimeraFuncion() as boolean
Return true
End function

Function SegundaFuncion() as boolean
return true
end function
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Ejecutar Funciones tomando el nombre desde una tabla

Publicado por Phil Rob (1554 intervenciones) el 19/04/2023 07:58:17
Hola,

No veo como cambiar el contenido de una variable String hasta nombre para llamar una función.

Pero, veo que los nombres de las funciones están conocidos, por ejemplo PrimeraFuncion, SegundaFuncion, …

Cuando los nombres de las funciones están conocidos, puedes escribir un SELECT CASE sobre estos nombres. Este código va hacer el paso del contenido de la variable String hasta el nombre de la función.

Por ejemplo, escribo la función MisFonciones :

1
2
3
4
5
6
7
8
Private Function MisFunciones(NombreFuncion As String) As Boolean
Select NombreFuncion
  Case “PrimeraFuncion”
    Return PrimeraFuncion
  Case “SegundaFuncion”
    Return SegundaFuncion
End Select
End Function

Otro ejemplo cuando es Sub y no Fonction, escribo la Sub MisProcedimientos para llamar PrimeraSub y SegundaSub :

1
2
3
4
5
6
7
8
Private Sub MisProcedimientos(NombreSub As String)
Select NombreSub
  Case “PrimeraSub”
    Call PrimeraSub
  Case “SegundaSub”
    Call PrimeraSub
End Select
End Sub

Y en tu programa :
1
2
3
4
5
‘… … …
For Each dr As DataRow In dsTable.Tables(0).Rows
‘’’     Dim NombreFuncion As String = dr("NombreFuncion")
   MisFunciones(dr("NombreFuncion"))  ' o MisProcedimientos(dr("NombreFuncion")), porque cuando es función, debemos utilizar el resultado
‘… … …

Espero que este te dará buenas ideas …
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar