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 :

différence champs / propriété


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de grinder59
    Inscrit en
    Septembre 2005
    Messages
    710
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 710
    Par défaut différence champs / propriété
    Bonjour,

    je suis en train de lire un bouquin sur C# afin de me mettre à jour. Et la lecture de celui ci me fait m'interroger sur une chose à laquelle je ne suis pas sûr d'avoir la bonne réponse :

    1. Quelle est la différence entre un champs et une propriété ?

    2. De ce que j'ai compris, une propriété est un champs disposant d'accesseurs, c'est ça ?

    3. Et est-il correct de dire que des accesseurs sont des méthodes particulières dédiées à la lecture / écriture d'un champs ?

    4 enfin, pourriez vous me donner une exemple de l'intérêt des accesseurs ?
    merci de votre aide !

  2. #2
    Membre Expert Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Par défaut
    Bonjour.

    Une propriété n'a pas forcément un champ derrière elle même si c'est souvent le cas. Un bon exemple de propriété sans champ est DateTime.Now qui renvoie l'heure courante. En réalité une propriété se définit par deux points : on y accède par une syntaxe similaire à celle des champs, et elle est définie par un nom, un type et un ou deux accesseurs (un getter et/ou un setter - des méthodes).

    Cela étant dit on peut très bien avoir une propriété avec un champ derrière elle, ou aucun champ, ou un champ commun à plusieurs propriétés (DegreeAngle et RadAngle, renvoyant la même chose dans deux unités différentes), ou plusieurs champs pour une même propriété (FullName renvoyant nom + prénom), etc. Peu importe, il ne faut pas chercher à faire de lien entre champs et propriétés, ce sont deux choses distinctes que seule la syntaxe d'accès rapproche ! Même si, en pratique, il y a souvent un champ pour une propriété.

    3. Oui, un accesseur est une méthode dédiée à la lecture/écriture d'une propriété ou d'un indexeur (une forme spéciale de propriété pour l'opérateur []). Leurs noms et signatures sont implicites : pour une propriété de type "int" nommée "Prop", ce seront "int get_Prop()" et "void set_Prop(int value)".

  3. #3
    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 : 43
    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
    Pour compléter la réponse de DonQuiche, je t'invite à lire cet article

Discussions similaires

  1. [AC-2010] Requête permettant de retourner la Taille du champ (propriété)
    Par SA2307 dans le forum Access
    Réponses: 4
    Dernier message: 03/06/2015, 13h57
  2. [Toutes versions] Problème titres champs propriétés
    Par Anecdote76 dans le forum IHM
    Réponses: 1
    Dernier message: 03/10/2012, 09h24
  3. [PPT-2007] Insérer un champ Propriétés
    Par michel77fr dans le forum Powerpoint
    Réponses: 3
    Dernier message: 13/12/2010, 14h46
  4. [AC-2003] Requete et accès aux valeur des champs/propriétés
    Par jax54000 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 21/02/2010, 09h11
  5. Réponses: 4
    Dernier message: 10/12/2006, 13h20

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