Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

pb de classes imbriquées

1 réponse
Avatar
OLIVIER
Bonsoir à tous,

J'ai un petit probleme dans mon code VB .net

Voici le code :

Public Class PurchaseOrder
Public shipTo As USAddress
Public billTo As USAddress
Public comment As String
End Class
Public Class USAddress
Public name As String
Public street As String
Public city As String
Public state As String
Public zip As Decimal
End Class
Module Serial
Dim po As New PurchaseOrder

Public Sub main()
po.shipTo.city = "test"
End Sub
End Module

Le problem est que lorsque je veut renseigner po.shipTo.city = "test" le
system me dit que l'objet n'existe pas !!

Pourtant lorsque je tape ma ligne po.shitpto. le vb m'ammene bien les
valeurs dispo en automatique c'est a dir name ou city ou state.
je pourrais déclarer directement tt as new usaddress mais là je ne vois pas
l'interet de faire des classes imbriquées si il faut décalrer tout les
niveau.

Pour info mon code est largement plus compliqué que l'exemple ci dessus que
j'ai volontairement simplifié pour mieux cilber mon probleme.


J'espere que quelqu'un aura une idée.

Merci d'avance


Olivier

1 réponse

Avatar
Gilles TOURREAU [MVP]
"OLIVIER" a écrit dans le message de
news:
Bonsoir à tous,

J'ai un petit probleme dans mon code VB .net

Voici le code :

Public Class PurchaseOrder
Public shipTo As USAddress
Public billTo As USAddress
Public comment As String
End Class
Public Class USAddress
Public name As String
Public street As String
Public city As String
Public state As String
Public zip As Decimal
End Class
Module Serial
Dim po As New PurchaseOrder

Public Sub main()
po.shipTo.city = "test"
End Sub
End Module

Le problem est que lorsque je veut renseigner po.shipTo.city = "test" le
system me dit que l'objet n'existe pas !!

Pourtant lorsque je tape ma ligne po.shitpto. le vb m'ammene bien les
valeurs dispo en automatique c'est a dir name ou city ou state.
je pourrais déclarer directement tt as new usaddress mais là je ne vois
pas l'interet de faire des classes imbriquées si il faut décalrer tout les
niveau.

Pour info mon code est largement plus compliqué que l'exemple ci dessus
que j'ai volontairement simplifié pour mieux cilber mon probleme.


J'espere que quelqu'un aura une idée.

Merci d'avance


Olivier







Bonjour,

C'est normal, car vous devez créer une instance de USAddress dans po.shipTo
:

Public Sub main()
po.shipTo = New USAddress()
po.shipTo.city = "test"
End Sub

Cordialement

--
Gilles TOURREAU - MVP C#


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr