MUGPERU
  Search 
Tuesday, January 06, 2009 ..:: Foros de Discusión ::.. Register  Login
Foros MUGPERU Minimize
Subject: Pasar un array de Objetos de una Clase como Parametro
Prev Next
You are not authorized to post a reply.

Author Messages
jorgelramos
Posts:2

03/10/2008 07:28 PM  

Buenas. tengo un problemita y espero puedan ayudarme.

MI problema es el siguiente..... tengo dos clases Class1 y Class2 definidas de esta forma.

Public Class Class1
    Private _sNumero As String
'  con su respectivo Get y Set 
......
End Class

Public Class Class2
     Public Function nuevo( ByVal arrayClass1 As Class1()) As Long
             For i = 0 To UBound(arrayClass1) ' PREVIAMENTE DECLARO EL i
                     ' arrayClass1(i) = New Class1()
                      MessageBox.Show(arrayClass1(i).numero)
             Next
'El problema surge aca. si lo pongo asi como esta me dice algo como q no tengo instanciado arrayClass1(i)
' y si activo el  "arrayClass1(i) = New Class1()" pasa normal. pero como que no captura el valor de la 
'propiedad que deseo mostrar como que creara una nueva instancia y muestra un "vacio"
    End Function
End Class
En un boton de un Win formulario tengo algo como esto
Private Sub Button2_Click( ... .) Handles Button2.Click
        Dim eq As New Class2
        Dim c As Class1()     ' Este es el array q quiero llenar y enviar
Dim i As Integer

        i = 0
        ReDim c(i)
        c(i) = New Class1
        c(i).numero = "NUMERO 0"

        i = 1
        ReDim c(i)
        c(i) = New Class1
        c(i).numero = "NUMERO 1"

      eq.nuevo(c) 
 ' QUIERO MANDAR COMO PARAMETRO UN ARRAY DE LA CLASE Class1.   HASTA ESTE PUNTO TODO ESTA PERFECTO.... EL LLENADO Y EL ENVIO. EL PROMEMA OCURRE CUANDO RECIBE EL ARRAY
End Sub
Mi pregunta es como poder Recorrer los valores de ese Array que envio como parametro 
ya que me pide primero instanciarlo, cuando envio un solo objeto funciona bien. pero
el problema surge cuando envio como parametro el array. como puedo leer esos valores.
Gracias por sus respuestas. 

 

rcrbalcazar
Posts:118

06/10/2008 10:02 AM  
El código de la clase esta bien lo que esta mal es el uso del Redim

el segundo redim que utilizas debería ser Redim Preserve, lo que pasa es que el no colocar esta sentencia el segundo redim elimina la instancia 0 que haz creado y luego te sale el error que mencionas.

Dim eq As New Class2
Dim c As Class1() ' Este es el array q quiero llenar y enviar
Dim i As Integer

i = 0
ReDim c(i)
c(i) = New Class1
c(i).numero = "NUMERO 0"

i = 1
ReDim Preserve c(i)
c(i) = New Class1
c(i).numero = "NUMERO 1"

eq.nuevo(c)

Richard Rodriguez
jorgelramos
Posts:2

06/10/2008 12:29 PM  
si muchas gracias por tu atencion. justo ya habia dado con ese pequeño problema de principiante ( como yo ) ... pero igual muchas gracias.

Hasta luego.
You are not authorized to post a reply.
Forums > Lenguajes de Programación > Visual Basic .NET > Pasar un array de Objetos de una Clase como Parametro



ActiveForums 3.7
        
Copyright 2001-2008 MUGPERU   Terms Of Use  Privacy Statement