none
Se puede comprobar si un elemento de una estructura se inicializó con algún valor? (explico) RRS feed

  • Pregunta

  • Si declaro:

     Structure Propiedades
        Dim Destino As String
        Dim Parametros As String

    End Sructure

    Y luego declaro y asigno:

    Sub Inicializar

    Dim P as Propiedades

    P.Destino = "D:\UnArchivo.txt"

    End Sub

    Y al otro elemento de la estructura (Parametros) no le asigno ningún valor, hay forma de comprobar si a un determinado elemento se le asignó o no un valor?



    • Editado James2016-2 domingo, 30 de julio de 2017 22:33
    domingo, 30 de julio de 2017 22:32

Respuestas

  • Hola

    Para que tu código quede mas prolijo puedes declarar el Structure en una clase a nivel de NameSpace y así poder utilizarlo desde donde lo necesites. 

    Structure Propiedades
        Public Shared Destino As String
        Public Shared Parametros As String
    End Structure
    
    Public Class MyClase
    
    End Class


    Lo usas de la siguiente manera

    Propiedades.Destino = "D:\UnArchivo.txt"

    Lo validas

    If String.IsNullOrEmpty(Propiedades.Destino) Then
                MessageBox.Show("Variable vacia")
    End If

    Saludos


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú



    • Editado Pedro Ávila domingo, 30 de julio de 2017 23:59
    • Marcado como respuesta James2016-2 lunes, 31 de julio de 2017 0:02
    domingo, 30 de julio de 2017 23:57
  • Hola James:

     Te comento que los parámetros del tipo string, son parámetros de referencia de tipo y su valor por defecto (sin asignar) es nulo entonces para la validación sugerida por Pedro no seria del todo correcta puesto ¿que sucedería si al parámetro con nombre Parametros (recomendaría usar un nombre mas apropiado al dato que almacenara esta propiedad) le asignas un valor "string.Emtpy"? la validación de Pedro dirá que no a sido asignado cuando en realidad si lo hiciste, le asignaste el valor por defecto del tipo de dato, pero al final se lo asignaste tu, entonces, ¿Como validar si el parámetro del tipo string fue asignado? simplemente pregunta por Nothig.

    If(Propiedades.Parametros Is Nothing) Then
      'Cualquier cosa que quieras hacer
    Else
      'Cualquier cosa que harias si Parametros es diferente a Nothing
    End If 

    Espero que la información te sea de utilidad



    Saludos desde Monterrey, Nuevo León, México!!!

    • Marcado como respuesta James2016-2 martes, 1 de agosto de 2017 2:40
    lunes, 31 de julio de 2017 5:11

Todas las respuestas

  • Hola

    Para que tu código quede mas prolijo puedes declarar el Structure en una clase a nivel de NameSpace y así poder utilizarlo desde donde lo necesites. 

    Structure Propiedades
        Public Shared Destino As String
        Public Shared Parametros As String
    End Structure
    
    Public Class MyClase
    
    End Class


    Lo usas de la siguiente manera

    Propiedades.Destino = "D:\UnArchivo.txt"

    Lo validas

    If String.IsNullOrEmpty(Propiedades.Destino) Then
                MessageBox.Show("Variable vacia")
    End If

    Saludos


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú



    • Editado Pedro Ávila domingo, 30 de julio de 2017 23:59
    • Marcado como respuesta James2016-2 lunes, 31 de julio de 2017 0:02
    domingo, 30 de julio de 2017 23:57
  • Gracias.
    lunes, 31 de julio de 2017 0:02
  • Hola James:

     Te comento que los parámetros del tipo string, son parámetros de referencia de tipo y su valor por defecto (sin asignar) es nulo entonces para la validación sugerida por Pedro no seria del todo correcta puesto ¿que sucedería si al parámetro con nombre Parametros (recomendaría usar un nombre mas apropiado al dato que almacenara esta propiedad) le asignas un valor "string.Emtpy"? la validación de Pedro dirá que no a sido asignado cuando en realidad si lo hiciste, le asignaste el valor por defecto del tipo de dato, pero al final se lo asignaste tu, entonces, ¿Como validar si el parámetro del tipo string fue asignado? simplemente pregunta por Nothig.

    If(Propiedades.Parametros Is Nothing) Then
      'Cualquier cosa que quieras hacer
    Else
      'Cualquier cosa que harias si Parametros es diferente a Nothing
    End If 

    Espero que la información te sea de utilidad



    Saludos desde Monterrey, Nuevo León, México!!!

    • Marcado como respuesta James2016-2 martes, 1 de agosto de 2017 2:40
    lunes, 31 de julio de 2017 5:11
  • Gracias.
    martes, 1 de agosto de 2017 2:40