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

Dotnet Discussion :

[VB.net] appeler un objet "parent"


Sujet :

Dotnet

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 50
    Par défaut [VB.net] appeler un objet "parent"
    Bonjour,

    J'ai un problème qui me semble simple mais que je n'arrive pas à résoudre.
    je crée une instance d'un objet contenant une liste de sous-objet.
    ( Exemple classique, je créé un objet "contacts" qui contient une liste de sous-objet "ficheContact")

    Je n'arrive pas, depuis mon sous-objet à savoir si son objet parent (la liste) contient un sous-objet en particulier.
    (exemple, depuis une ficheContact si cette fiche existe déjà dans la liste )

    J'ai l'habitude de javascript où on peut faire référence à un "_parent" mais je ne trouve pas d'équivalent en VB

    Merci
    Niouze.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 110
    Par défaut
    Si dans tes objets tu ne gere pas l'accès au parent alors il est normal que tu n'y ai pas accès.

    Neanmoins c'est facilement faisable, il suffit de mettre une proprieté dans ta sous classe qui reference l'objet parent et de la mettre à jour (genre dans le constructeur) quand tu rajouter ton sous objet à ta liste.

    Ici c'est toi qui conçois et developpe tes classes tu y fait ce que tu veux.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 50
    Par défaut
    Citation Envoyé par Tnopy
    il suffit de mettre une proprieté dans ta sous classe qui reference l'objet parent et de la mettre à jour (genre dans le constructeur) quand tu rajouter ton sous objet à ta liste.
    Un p'tit bout de code en exemple ? Le problème c'est que je ne sait pas comment faire référence à l'objet parent...

    Merci en tout cas.
    Niouze.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    849
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 849
    Par défaut
    Un truc de ce style est bon.
    La propriété n'est pas obligatoire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    class FicheContact
    {
      private Contact _contact;
     
     //Constructeur
      public FicheContact(Contacts contactParent)
     {
      _contact=contactParent;
     }
     
      //Propriété
      public Contact Parent
     {
       get{ return _contact; }
       set {_contact=value;}
     }
    }

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 50
    Par défaut
    je vais essayer de traduire ça en VB

    J'imagine que la variable qui représente le parent n'est pas "dupliqué" en mémoire pendant la construction de l'objet , parceque sinon ça le fait pas, j'ai 32.000 contacts à gérer

    Merci à vous deux.
    Niouze

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 110
    Par défaut
    Citation Envoyé par niouze
    je vais essayer de traduire ça en VB

    J'imagine que la variable qui représente le parent n'est pas "dupliqué" en mémoire pendant la construction de l'objet , parceque sinon ça le fait pas, j'ai 32.000 contacts à gérer

    Merci à vous deux.
    Niouze
    Dans les faits c'est un pointeur (adresse, reference, appel ca comme tu veux ca reste toujours la même chose) vers l'objet, donc non il n'y a pas de duplication, en fait pour les objets, il n'y a jamais de duplication sauf lors d'un passage de paramètre par valeur ou qu'on le fait nous même de façons explicite avec des methodes comme "clone".

    Pour le code tu peux avoir un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Public Class classeEnfant
        Private _Parent As classeParent
     
        Public ReadOnly Property parent()
            Get
                Return _Parent
            End Get
        End Property
     
        Public Sub New(ByVal maClasseParent As classeParent)
            _Parent = maClasseParent
        End Sub
    End Class
    La tu as une classe avec une reference vers le parent crée lors de l'instanciation qui ne peut être modifié par la suite.

    Evidemment charge à toi de creer une classe qui gerera ta collection de classeEnfant

Discussions similaires

  1. [VB.Net 1.1] Comment "échapper" une quote ?
    Par arnolem dans le forum VB.NET
    Réponses: 1
    Dernier message: 07/09/2006, 10h39

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