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 :

Comment accéder à la propriété d'une propriété ?


Sujet :

C#

Vue hybride

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

    Informations forums :
    Inscription : Novembre 2008
    Messages : 39
    Par défaut Comment accéder à la propriété d'une propriété ?
    Bonjour à tous,

    Imaginez le cas suivant :

    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
     
     
    public class UneClasse
    {
    private Point __point;
     
    public Point cePoint
            {
                get
                {
                    return __point;
                }
                set
                {
                    __point = value;
                }
            }
     
    ....

    Y a-t-il un moyen simple d'accéder à la propriété 'X' de la propriété 'cePoint' ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    // Quelque part ailleurs
    UneClasse instanceDeClasse;
    instanceDeClasse.cePoint.X = 15  // Ceci ne marche pas. Génère une compile-time erreur. Normal.

    Comment écrire, dans la définition de 'UneClasse', les accesseurs (get/set) des propriétés (X et Y) de la propriété cePoint ?

  2. #2
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    L'erreur de compilation vient du fait que Point est une structure et que tu ne peux pas la modifier ainsi car c'est un type valeur. Dans ce cas de figure faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    instanceDeClasse.cePoint.X = 15
    Reviendrait à écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Point p = instanceDeClasse.cePoint;
    p.X = 15;
    A ce stade p et instanceDeClasse.cePoint sont différents (car structure et donc type valeur). Modifier p ne modifiera pas instanceDeClasse.cePoint. Le compilateur génère donc une erreur, car si le code laisse à priori supposer que l'on modifie bien la variable ce n'est pas le cas.

    Avec une structure il faut faire par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    instanceDeClasse.cePoint = new Point(15, instanceDeClasse.cePoint.Y);

Discussions similaires

  1. Réponses: 1
    Dernier message: 14/12/2013, 00h05
  2. Réponses: 10
    Dernier message: 23/03/2011, 16h10
  3. Binding sur une proprité d'une propriété
    Par al2000 dans le forum Windows Forms
    Réponses: 0
    Dernier message: 21/06/2010, 17h24
  4. Réponses: 10
    Dernier message: 20/09/2006, 12h53
  5. Réponses: 5
    Dernier message: 31/07/2006, 14h42

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