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

C# Discussion :

utilisation du passage par référence


Sujet :

C#

Vue hybride

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

    Informations forums :
    Inscription : Septembre 2006
    Messages : 14
    Par défaut utilisation du passage par référence
    bonjour a tous ...
    j'aimerai avoir de l'aide concernant un point d'utilisation.
    Voici le contexte :
    - j'ai une liste d'alerte
    - j'ai une liste de destinataire

    il faut que je gère les abonnements liant chaque alerte à un ou plusieurs destinataire(s)

    J'ai opté pour un objet "Gestionnaire_abonnement" ... ayant une liste d'abonnement . Chaque abonnement étant un couple "nom alerte", "mon_destinataire".
    Cet objet a une méthode qui renvoi une liste de destinataire (méthode utilisé par l'alerte pour récupérer ces destinataires)

    Ma volonté est d'éviter le doublon d'info en mémoire. j'aimerai donc que mon couple d'abonnement ne contienne qu'une référence vers le destinataire concerné et non un destinataire complet)
    De même , la méthode de l'abonnement,renverrai une liste de références directement utilisable par l'alerte

    et là ..j'avoue ne pas voir comment "coder" cela...
    donc ma question serait la suivante:
    - pour stocker une référence d'un objet, doit-on utiliser un propriété du type de l'objet?

    le code de la classe abo

    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
    18
    19
    20
    21
    22
    23
    class abo
        {
            private string propAlertName = string.Empty;
            private ?? propAbonnement = // init à rien
     
     
            public abo(string alerte, ref alerte myArlerte)
            {
                this.propAlertName = alerte;
                this.propAbonnement = ??;
            }
     
            public string alertName
            {
                get {return (this.propAlertName);}
                set { this.propAlertName = value; }
            }
     
            public ?? abonnement 
            {
                get { return (this.propAbonnement ); }
                set { this.propAbonnement = ??; }
            }
    voilà ..j'espère avoir été clair..

    merci pour votre aide

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    pas tout compris

    il te manque surement la notion de collection
    et tu ne fais pas mention de clé non plus, ce qui est étrange ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre émérite Avatar de neptune
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 835
    Par défaut
    Jette un oeil au pattern Observer...

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    j'aimerai donc que mon couple d'abonnement ne contienne qu'une référence vers le destinataire concerné et non un destinataire complet
    Euh... ton destinataire, c'est quoi au juste ? une instance de la classe Destinataire ? Parce que si c'est une classe, c'est un type référence, et donc c'est toujours géré par référence. Il n'y a rien de particulier à faire

    Si tu lis l'anglais je te conseille cet article très bien expliqué sur les notions de type valeur/type référence et passage de paramètre par valeur/par référence

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 14
    Par défaut
    Bonjour et désolé de ne pas avoir été assez précis, mais je ne voulais pas non plus déblatérer sur l'ensemble du projet

    Citation Envoyé par tomlev Voir le message
    Euh... ton destinataire, c'est quoi au juste ? une instance de la classe Destinataire ? Parce que si c'est une classe, c'est un type référence, et donc c'est toujours géré par référence. Il n'y a rien de particulier à faire

    Si tu lis l'anglais je te conseille cet article très bien expliqué sur les notions de type valeur/type référence et passage de paramètre par valeur/par référence
    Oui merci..
    C'était exactement là ma question et donc la réponse attendu.
    Si je comprend bien ta réponse :
    - J'ai un objet (instance d'une classe) dans une liste (collection) de ce type de d'objet.
    Si je passe cet objet dans un fonction qui va par exemple le stocké dans une autre collection (de même type) mais appartenant a un autre objet :
    Ce n'est que sa référence qui est passée et non l'ensemble de l'objet qui est recopié.
    Donc on limite l'occupation de la mémoire.

    @ Pol63 : je ne me suis pas attardé sur le type de liste car là n'était pas la question.
    pour info , ma liste d'alerte est une hashtable car chaque objet de type "alerte" est unique, et cette liste varie peu dans le fonctionnement du prog.

    @ Neptune: merci pour le lien vers le pattern . J'avoue potasser en ce moment un doc en anglais du genre "les bonne pratiques de dev" et effectivement l'application des design pattern semble incontournable ..
    reste a en comprendre le sens et surtout quand et comment les implémenter ..
    mais là c'est une autre histoire ..

    merci encore pour vos réponses super rapides

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Ce n'est que sa référence qui est passée et non l'ensemble de l'objet qui est recopié
    exactement

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 13/10/2014, 11h22
  2. [PHP 5.3] bonne idée d'utiliser le passage par référence ?
    Par ikuzar dans le forum Langage
    Réponses: 1
    Dernier message: 11/07/2012, 18h55
  3. Réponses: 4
    Dernier message: 26/12/2005, 18h01
  4. Passage par référence
    Par difficiledetrouver1pseudo dans le forum Langage
    Réponses: 9
    Dernier message: 28/09/2005, 12h17
  5. Problème très rapide de passage par référence
    Par Noxexplorer dans le forum ASP
    Réponses: 2
    Dernier message: 23/06/2005, 11h02

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