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 :

C# propriété avec accesseur get et valeur de référence


Sujet :

C#

Vue hybride

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 141
    Par défaut C# propriété avec accesseur get et valeur de référence
    Bonjour,

    j'explique un peu le titre, j'aimerais savoir s'il est possible de faire une propriété qui permet de récupéré un objet (donc une référence et non une valeur) tout en interdisant la modification de cet objet;

    Je donne un exemple:
    1) Code de la propriété :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public class Test{
    private TextBox myTextBox = new TextBox();
     
    public TextBox TextBox
    {
        get { return myTextBox; }
    }
    }
    2) Code dans une autre classe que test
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Test tmpObj = new Test();
    tmpObj.TextBox.Text = "coucou";
    Ici, je voudrais que le code 2) lève une exception indiquant que la modification de la propriété TextBox est indertite!

    En gros, je veux bien qu'on puisse voir l'objet TextBox et ces propriété mais je veux aussi bloqué toutes actions de modification sur cet objet

    Est-ce possible ou alors faut-il s'en remettre à la bonne volonté du programmeur de ne pas bidouillé la propriété?

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    salut

    Euh, si la classe t'appartenait, tu pourrais tres bien le faire

    Maintenant, je ne pense pas que tu puisses changer le comportement inhérent
    à l'accès des propriétés pour la textbox

    Maintenant, peut-etre en jouant avec la reflection... mais pas sur

    The Monz, Toulouse

  3. #3
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Ne renvois pas la textbox, renvois les propriétés de celle-ci.

  4. #4
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    A vrai dire , je ne vois pas bien pourquoi tu veux passer un objet si tu ne veux pas que ses propriétés soient modifiées.

    Deux solutions à vue de nez :

    - Exposer juste les propriétés. (version Ced600)
    - Utiliser un DP façade pour exposer un objet avec des propriétés non modifiables.

  5. #5
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Citation Envoyé par Bluedeep Voir le message
    A vrai dire , je ne vois pas bien pourquoi tu veux passer un objet si tu ne veux pas que ses propriétés soient modifiées.

    Deux solutions à vue de nez :

    - Exposer juste les propriétés. (version Ced600)
    - Utiliser un DP façade pour exposer un objet avec des propriétés non modifiables.
    DP = Design Pattern = Patron de conception, pour ceux qui n'aurait pas compris.
    J'ai mis personnellement 10 secondes pour comprendre ce que Bluedeep voulait dire par DP

    Patron de conception Facade.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 141
    Par défaut
    Ok, je vais regarder les "DP"

    Pour info, la j'ai fait simple avec un TextBox mais en faite mon but est de faire une propriété permettant d'accéder à un objet MySqlConnection pour que des classes puisse créer des DataAdapter avec. Seulement il ne faut pas qu'il me modifi l'objet MySqlConnection puisqu'il est partagé entre plusieurs classe.
    Je vais peut-être faire une méthode qui initialise le DataAdapter se sera plus simple.
    Pour la propriété, c'était surtout pour la culture général puis aussi parce que j'ai déjà eu un truc avec une classe du framweork ou de directX (me rapelle plus laquelle) qui m'autorisait à accéder à un objet (une instance de classe) d'accéder à ces propriétés mais si je les utilisais, ça me faisait une erreur. J'essayerai de la retrouver.

  7. #7
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par ced600 Voir le message
    DP = Design Pattern = Patron de conception, pour ceux qui n'aurait pas compris.


    Blague à part, je ne connaissais pas le terme français "Patron de conception"; j'en prends note.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 20/11/2013, 13h36
  2. Problème avec l'accesseur get
    Par marcov dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 20/10/2013, 17h17
  3. Réponses: 5
    Dernier message: 30/09/2012, 16h32
  4. Classes / Propriétés avec transmission de valeur dans l'appel
    Par Marmounet dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 05/09/2008, 19h13
  5. requete select avec AS remplacement de valeur
    Par pi3141563 dans le forum Requêtes
    Réponses: 3
    Dernier message: 17/04/2004, 22h15

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