IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

[VS2005]Question de débutant


Sujet :

VB.NET

  1. #1
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut [VS2005]Question de débutant
    Hello à tous,

    J'ai une question de débutant niveau 0 en programmation orienté-objet.

    Je ne sais pas comment la formuler alors je donne un exemple concret.

    Disons que j'ai une classe User.
    Cette classe a, entre autres, une propriété nommée Gsms qui est de type List(Of Gsm)
    J'ai donc également une classe Gsm.
    Cette seconde classe a une propriété (parmi d'autres) nommée Sim (qui contient le numéro de la carte SIM) et est de type String.

    Maintenant, un peu de code....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    'on va dire que le constructeur est bien fait et qu'il va chercher tout ce qu'il
    'faut dans la db pour initialiser correctement l'objet user.
    dim user as New User()
     
    dim gsm as Gsm = user.Gsm
     
    gsm.sim = "123456"
    Une fois ce code exécuté, est-ce que la propriété sim de l'objet gsm contenu dans user est mis à jour ou bien faut il "réinjecter" l'objet gsm mis à jour dans l'objet user ?

    Merci d'avance,

    Griftou.
    Kropernic

  2. #2
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Ca y est, j'ai trouvé comment formulé ma question

    Est-ce que l'objet gsm créé par le code de mon message précédent est une copie de l'objet gsm contenu dans l'objet user ou bien est-ce un pointeur vers cet objet ? (la réponse "oui" ne me convient pas )

    Peut-être cela sera-t-il plus clair pour certains.

    Griftou.
    Kropernic

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    319
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 319
    Points : 414
    Points
    414
    Par défaut
    Bonjour

    Voici un extrait du cours de m. Lasserre

    Si on affecte une variable par référence à une autre, elle pointe toutes les 2 sur le même endroit mémoire: si j'en modifie une, cela modifie l'autre.

    'Créons une Classe contenant un entier.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Class Class1
       Public Value As Integer = 0
    End Class
     
    Dim C1 As New Class1()
    Dim C2 As Class1 =C1    'on crée C2, on affecte C1 à C2
    C2.Value = 123          'on modifie C2
     
     
    => C1.Value=123  C2.Value=123
    Modifier C2 a modifié C1 car elles pointent sur le même endroit mémoire.

    On le redit autrement: quand on crée C1 et C2, il n'y a pas 2 objets C1 et C2 mais 2 pointeurs vers le même objet.


    Si on veut faire une copie 'indépendante', il faut utiliser Clone.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Class Class1
       Public Value As Integer = 0
    End Class
     
    Dim C1 As New Class1()
    C1.Value= 555
    Dim C2 As Class1 =C1.Clone    'on crée C2, on clone 
    C2.Value = 123          'on modifie C2
     
    'C1.Value=555  C2.Value=123
    j'espere que cela repond a ta question

    Nasty
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'TODO : trouver une signature mieux que celle la

  4. #4
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Merci !!!

    J'avais cherché dans ce cours mais apparemment pas au bon endroit du cours.
    Kropernic

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    319
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 319
    Points : 414
    Points
    414
    Par défaut
    Tiens voila la section ou etait la reponse XV-B-1-c

    Nasty
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'TODO : trouver une signature mieux que celle la

  6. #6
    Membre éclairé Avatar de methylene
    Profil pro
    Inscrit en
    Février 2010
    Messages
    659
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 659
    Points : 813
    Points
    813
    Par défaut
    Il ne manque plus que la balise !
    Geeker c'est comme manger, on ne peut pas s'en passer !!!

    Tout est objet !!!

    ____________________________________

    http://www.geekingmania.com

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 13
    Dernier message: 23/06/2005, 10h56
  2. question de débutant sur les objets
    Par boucher_emilie dans le forum ASP
    Réponses: 3
    Dernier message: 06/08/2004, 10h51
  3. [MFC] Quelques questions de débutant...
    Par Sephi dans le forum MFC
    Réponses: 4
    Dernier message: 20/02/2004, 17h25
  4. Questions de débutant
    Par J-P-B dans le forum XMLRAD
    Réponses: 12
    Dernier message: 24/07/2003, 15h19
  5. [HyperFile] 2 questions de débutant
    Par khan dans le forum HyperFileSQL
    Réponses: 2
    Dernier message: 29/04/2002, 23h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo