none
¿No hay forma de simplificar el acceso a los miembros de la clase en estas declaraciones? (Explico)

    Pregunta

  • Por ejemplo, si tengo una clase pública donde solo tengo declaraciones de tipos de datos, algo más o menos así:

    Public Class TiposParticulares

       Enum Material

           Madera

           Metal

           Plastico

       End Enum

       .... y así otros tipos

    End Class


    Y una clase que hace uso de las definiciones de arriba, para acceder al tipo enumerado Material y sus valores haría lo siguiente:


    Class claPrincipal

           Dim MaterialMueble As claTiposParticulares.Material

           Public Sub UnMetodoCualquiera

                If nCodigo = 1 Then

                      MaterialMueble = claTiposParticulares.Material.Madera

                Else

                      MaterialMueble = claTiposParticulares.Material.Metal

                End If

                If MaterialMueble = claTiposParticulares.Material.Metal then

                       ....hacer algo

                End If

           End Sub

    End Class


    Como se puede observar en el código anterior para acceder a uno de los valores del tipo enumerado tengo que poner punto, punto y así la línea de código se hace larga y más ininteligible que si escribiera por ejemplo:

    If MaterialMueble = Metal Then ...

    La consulta es si no hay una forma de poner un alias o una forma de simplificar esa manera de acceder a los valores del tipo enumerado.






    • Editado James-2016 lunes, 2 de enero de 2017 22:37
    lunes, 2 de enero de 2017 22:30

Respuestas

  • "James-2016" escribió:

    > lo acabo de descubrir, solo tengo que importar la clase y ya se
    > pueden referenciar los tipos contenidos en esta directamente.

    Si la enumeración Material se encuentra definida DENTRO de la clase TiposParticulares, no te va a quedar más remedio que importar el nombre de la clase si no deseas que las líneas de código se hagan largas, que tampoco va a pasar nada del otro mundo porque sean largas. ;-)

    De todas maneras, si la enumeración Material va a ser utilizada fuera de la propia clase TiposParticulares, lo que tienes que hacer es sacarla de dicha clase y declararla a nivel del espacio de nombres del propio proyecto:

    Namespace NombreEspacioNombresProyecto
    
       Enum Material
    
           Madera
    
           Metal
    
           Plastico
    
       End Enum
    
       .... y así otras Enumeraciones
    
    
       Public Class TiposParticulares
       
       End Class
    
       Public Class Form1
    
       End Class
    
       Public Class NombreClase
    
       End Class
    
    End Namespace
    


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.

    • Propuesto como respuesta Willams Morales miércoles, 4 de enero de 2017 16:03
    • Marcado como respuesta James-2016 miércoles, 4 de enero de 2017 19:02
    miércoles, 4 de enero de 2017 10:19
    Moderador

Todas las respuestas

  • mm lo acabo de descubrir, solo tengo que importar la clase y ya se pueden referenciar los tipos contenidos en esta directamente.

    ---------------------------------------

    De todos modos cualquier comentario al respecto es bienvenido.

    lunes, 2 de enero de 2017 22:45
  • "James-2016" escribió:

    > lo acabo de descubrir, solo tengo que importar la clase y ya se
    > pueden referenciar los tipos contenidos en esta directamente.

    Si la enumeración Material se encuentra definida DENTRO de la clase TiposParticulares, no te va a quedar más remedio que importar el nombre de la clase si no deseas que las líneas de código se hagan largas, que tampoco va a pasar nada del otro mundo porque sean largas. ;-)

    De todas maneras, si la enumeración Material va a ser utilizada fuera de la propia clase TiposParticulares, lo que tienes que hacer es sacarla de dicha clase y declararla a nivel del espacio de nombres del propio proyecto:

    Namespace NombreEspacioNombresProyecto
    
       Enum Material
    
           Madera
    
           Metal
    
           Plastico
    
       End Enum
    
       .... y así otras Enumeraciones
    
    
       Public Class TiposParticulares
       
       End Class
    
       Public Class Form1
    
       End Class
    
       Public Class NombreClase
    
       End Class
    
    End Namespace
    


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.

    • Propuesto como respuesta Willams Morales miércoles, 4 de enero de 2017 16:03
    • Marcado como respuesta James-2016 miércoles, 4 de enero de 2017 19:02
    miércoles, 4 de enero de 2017 10:19
    Moderador