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 :

Propriétés ou méthode d'accès?


Sujet :

C#

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Ca depend des jours.
    Inscrit en
    Novembre 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ca depend des jours.

    Informations forums :
    Inscription : Novembre 2015
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Propriétés ou méthode d'accès?
    Bonjour, je débute complètement dans ce langage, et un détail me chiffonne: quelle est finalement la différence fondamentale entre une propriété (du genre Public Type Propriete {get;set,}
    et une méthode d'accessibilité des attributs (comme public void SetPrenom(String P) { this.prenom = P; } )
    J'ai du mal à saisir la différence entre ces deux manières de faire, et j'aimerais savoir si les deux sont complètement équivalentes, ou si l'une est meilleure que l'autre pour certaines situations.

    Merci pour vos réponses!

  2. #2
    Membre actif
    Homme Profil pro
    Developpeur
    Inscrit en
    Février 2013
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Février 2013
    Messages : 180
    Points : 271
    Points
    271
    Par défaut
    il n'y a pas de différence, si ce n'est que l'intelSense et le compilateur gère plus facilement les propriétés
    (ce n'est qu'une histoire de syntaxe) Ce sont tous les deux des assesseurs.

    tu as des mot clé dans visual studio pour générer plus facilement ces propriétés
    tu tape "prop" et tu tape sur tas touche Tabulation
    si tu peux la propriété + la variable tu tape : "propfull" puis tu tape sur tas touche de Tabulation
    ça te génère du code et tu te déplace avec Tabulation pour tout modifier d'un coup.


    il vaut mieux utiliser les propriétés ne fait pas tous toi même, surtout avec un tel langage

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Ca depend des jours.
    Inscrit en
    Novembre 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ca depend des jours.

    Informations forums :
    Inscription : Novembre 2015
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    D'accord, c'est noté, merci pour le tuyau bonus
    Mais comme le but des propriétés, si j'ai bien suivi, est de manipuler des attributs privés comme s'ils étaient public, est-ce que quelque part ça ne fait pas tâche avec le principe d'encapsulation qui dit que tout attribut doit être privé?

  4. #4
    Membre actif
    Homme Profil pro
    Developpeur
    Inscrit en
    Février 2013
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Février 2013
    Messages : 180
    Points : 271
    Points
    271
    Par défaut
    Citation Envoyé par Charon2012 Voir le message
    Mais comme le but des propriétés, si j'ai bien suivi, est de manipuler des attributs privés comme s'ils étaient public
    NON, c'est l'impression que l'on peut avoir en regardant les propriétés basique, mais ce n'est pas le cas.
    ici tu ne fait que renvoyer t'as propriété, ou la renseigner.

    mais dans un projet avec un minimum de code métier, ce n'est plus le cas.

    par exemple, enregistrons un employé : nom prénom , date de naissance, age, numéro de sécu , ....
    je veux rendre les champs nom, date de naissance, sécu obligatoire
    je veux que le prénom soit en miniscule avec la première lettre en majuscule
    je veux que l'employé ai minimum plus de 18 ans
    je veux que l'age soit calculé en fonction de la date de naissance
    .......


    alors tu voit déjà avec aussi peu d'information le nombre de règle que j'ai donné.
    si tu devais faire ça dans un bout de ton programme je ne sais ou, il y a de forte chance que tu l'oublie et que tu passe au travers
    donc on va mettre du code dans les propriétés, et comme ça ton objet est toujours beau comme tu le souhaite

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Ca depend des jours.
    Inscrit en
    Novembre 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ca depend des jours.

    Informations forums :
    Inscription : Novembre 2015
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Ok, je te remercie, c'est effectivement plus clair vu comme ça!

  6. #6
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Pour être un peu plus précis, les propriétés ne sont rien d'autres que du "sucre syntaxique".

    Lorsque le code est converti en IL (Intermediate Language), les get/set deviennent des méthodes à proprement parler, et le code est compilé de telle sorte qu'il utilise l'une ou l'autre de ces méthodes. Un champ privé est également créé. Pour plus d'info : Why Properties Matter
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

Discussions similaires

  1. Accès propriété et méthode d'un sous clip
    Par rburney dans le forum ActionScript 1 & ActionScript 2
    Réponses: 2
    Dernier message: 25/05/2008, 23h32
  2. Attribution d'une propriété ou méthode
    Par kgb1917 dans le forum Access
    Réponses: 12
    Dernier message: 25/05/2007, 15h13
  3. Méthode d'accès à Oracle via PHP
    Par nicocolt dans le forum Oracle
    Réponses: 1
    Dernier message: 19/10/2006, 15h57
  4. [c#] Méthode d'accès aux objets de ma form1
    Par SDuh dans le forum Windows Forms
    Réponses: 5
    Dernier message: 21/03/2006, 11h21
  5. Réponses: 4
    Dernier message: 16/02/2006, 17h45

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