none
¿Quiero hacer una selección dependiendo del tipo de control pero no quiero usar if, sino case, hay alguna alternativa? (explico)

    Pregunta

  • Suponiendo que tengo un parámetro genérico (un objeto) llamado Control y quiero determinar su tipo, normalmente se haría esto:

    If TypeOf(Control) Is Button then

    End If

    If TypeOf(Control) Is Label then

    End If

    Y si fueran varios, tendría que usar la cláusula ElseIf o un If para cada uno. En lugar de eso quiero utilizar un Select Case ¿cómo sería?


    • Editado James-2016 domingo, 2 de octubre de 2016 1:56
    domingo, 2 de octubre de 2016 1:56

Respuestas

  • Hola James-2016,

    Primero recomendarte que trates de no declarar variables con nombre reservados, lo digo por Control.

    Puedes obtener el Type del objeto y comparar con los tipos de cada Control.

           Dim c As Control = Button1
    
            Select Case c.GetType()
                Case GetType(Button)
                Case GetType(Label)
                Case Else
            End Select

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    • Marcado como respuesta James-2016 domingo, 2 de octubre de 2016 2:11
    domingo, 2 de octubre de 2016 2:05

Todas las respuestas

  • Hola James-2016,

    Primero recomendarte que trates de no declarar variables con nombre reservados, lo digo por Control.

    Puedes obtener el Type del objeto y comparar con los tipos de cada Control.

           Dim c As Control = Button1
    
            Select Case c.GetType()
                Case GetType(Button)
                Case GetType(Label)
                Case Else
            End Select

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    • Marcado como respuesta James-2016 domingo, 2 de octubre de 2016 2:11
    domingo, 2 de octubre de 2016 2:05
  • ah, ok, tendré en cuenta la recomendación. Gracias de nuevo.
    domingo, 2 de octubre de 2016 2:11