El error creo que te lo tira por querer utilizar un struct que no está inicializado... Y fuera de eso, no entiendo porque usas una estructura dentro de la clase, cuando las variables podrian estar ya dentro de la clase... Y así evitarte los redims y esas cosas, que tampoco creo que sean necesarios.
1) Hasta donde yo se, redim es para cambiar el valor de una variable.
2) podrias crear tu clase con los atributos sueltos, total tu clase ya representa a un proveedor, no hace falta el struct.
Luego, este método no está muy bien hecho me parece...
Código:
Public Sub guardar(ByVal id2 As Integer, ByVal nombres2 As String)
Dim respuesta As Boolean
respuesta = True
Dim largo As Integer
Dim prov As Proveedor.prov
ReDim prov.id(0)
ReDim prov.nombres(0)
largo = prov.id.Length - 1
If String.IsNullOrEmpty(prov.nombres(0)) = True Then
prov.id(largo) = id2
prov.nombres(largo) = nombres2
Else
largo = largo + 1
ReDim prov.id(largo)
ReDim prov.nombres(largo)
prov.id(largo) = id2
prov.nombres(largo) = nombres2
End If
creo que podrias reemplazarlo por:
Código:
Public Sub guardar(ByVal unId As Integer, ByVal unNombres As String)
If String.IsNullOrEmpty(unNombre) Then
id = unId
nombre = unNombres
Else
throw new Exception("nombre de proovedor invalido")
End If
Otra cosa ¿que se supone debería hacer un proveedor cuando le mandas el mensaje recorrer?
Nada, espero que te sirva
Saludos
Guille