Would you like to react to this message? Create an account in a few clicks or log in to continue.

    getset issue

    avatar
    Admin
    Admin


    Posts : 77
    Join date : 2009-07-28

    getset issue Empty getset issue

    Post  Admin Mon Dec 07, 2009 10:18 am

    getset issue W8ojsj
    Une propriété permet de lire (get) ou de fixer (set) la valeur d'un attribut. Une propriété est déclarée comme suit :
    public Type Propriété{
    get {...}
    set {...}
    }
    où Type doit être le type de l'attribut géré par la propriété. Elle peut avoir deux méthodes appelées get et set. La méthode get est
    habituellement chargée de rendre la valeur de l'attribut qu'elle gère (elle pourrait rendre autre chose, rien ne l'empêche). La méthode
    set reçoit un paramètre appelé value qu'elle affecte normalement à l'attribut qu'elle gère. Elle peut en profiter pour faire des
    vérifications sur la validité de la valeur reçue et éventuellement lancer un exception si la valeur se révèle invalide. C'est ce qui est fait
    ici.
    Comment ces méthodes get et set sont-elles appelées ? Considérons le programme de test suivant :
    1. using System;
    2.
    3. namespace Chap2 {
    4. class Program {
    5. static void Main(string[] args) {
    6. Personne p = new Personne("Jean", "Michelin", 34);
    7. Console.Out.WriteLine("p=(" + p.Prenom + "," + p.Nom + "," + p.Age + ")");
    8. p.Age = 56;
    9. Console.Out.WriteLine("p=(" + p.Prenom + "," + p.Nom + "," + p.Age + ")");
    10. try {
    11. p.Age = -4;
    12. } catch (Exception ex) {
    13. Console.Error.WriteLine(ex.Message);
    14. }//try-catch
    15. }
    16. }
    17. }
    Dans l'instruction
    Console.Out.WriteLine("p=(" + p.Prenom + "," + p.Nom + "," + p.Age + ")");
    on cherche à avoir les valeurs des propriétés Prenom, Nom et Age de la personne p. C'est la méthode get de ces propriétés qui est
    alors appelée et qui rend la valeur de l'attribut qu'elles gèrent.
    Dans l'instruction
    p.Age=56;
    on veut fixer la valeur de la propriété Age. C'est alors la méthode set de cette propriété qui est alors appelée. Elle recevra 56 dans
    son paramètre value.
    Une propriété P d'une classe C qui ne définirait que la méthode get est dite en lecture seule. Si c est un objet de classe C,
    l'opération c.P=valeur sera alors refusée par le compilateur.
    L'exécution du programme de test précédent donne les résultats suivants :
    1. p=(Jean,Michelin,34)
    2. p=(Jean,Michelin,56)
    3. âge (-4) invalide
    Les propriétés nous permettent donc de manipuler des attributs privés comme s'ils étaient publics. Une autre caractéristique des
    propriétés est qu'elles peuvent être utilisées conjointement avec un constructeur selon la syntaxe suivante :
    Classe objet=new Classe (...) {Propriété1=val1, Propriété2=val2, ...}
    Cette syntaxe est équivalente au code suivant :
    1. Classe objet=new Classe(...);
    2. objet.Propriété1=val1;
    3. objet.Propriété2=val2;
    4. ...
    L'ordre des propriétés n'importe pas. Voici un e

      Current date/time is Mon May 20, 2024 11:03 am