Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : get set [ Mono / Général ] (chouchoune80)

mercredi 13 août 2008 à 00:14:33 | get set

chouchoune80

Bonjour,

je pense que ma question va en faire sourire plus d'un mais bon je me lance......Voila je développe depuis peu et j'aurai voulu savoir à quoi sert la fonction  get et set et dans quels cas l'utiliser? Apres plusieurs recherche sur le net et notamment sur msdn j'avoue ne pas comprendre le fonctionnement et l'interet de ces fonctions.

Merci .

mercredi 13 août 2008 à 04:44:57 | Re : get set

lemmingperceval

Salut,
Cela s'appel l'encapsulation.
En règle généralw, l'idée est d'atteindre ta variable de visibilité private au travers d'une méthode public.
Cela te permet d'effectuer des tests ou je ne sais quoi d'autre lorsque tu assigne ou que tu récupère le contenu de ta variable.

Par exemple:
Tu programme, pour les avions de ligne, un logiciel qui permet de règler l'inclinaison des pales(haut/bas):
//Class représentant un avion

public
classFlight
{
      
//
System.Single repr,sentant l'inclinaison des pales de l'avion. (private)
      publicfloat inclinaison;
}

Imagine qu'une personnes accède à ta variable depuis un morceau de code externe et lui assigne -90°
//La variable est public, on peut lui assigner n'importe quelle valeur float.

myFlightInstance.inclinaison = -90;

Hop, ton avions pique à -90° en plein vol et c'est est fini pour tous ces passagers.

Avec l'encapsulation, tu donneras à la variable inclinaison la visibilité private, et tu créeras une méthode get-set public qui testera la valeur que l'on essaie d'assigner à la variable inclinaison:
publicclassFlight
{
      // System.Single représentant l'inclinaison des pales de l'avion.
      private
float inclinaison;

      //
Obtient ou défini un System.Single représentant l'inclinaison des pales de l'avion.
      publicfloat Inclinaison
      {
            get
            {
                  
return inclinaison;
            }

            set
            {
                  //On admet que les pales de l'avions peuvent avoir une inclinaison maximale de -30°
                  if (value >= -30)
                        inclinaison =
value;
                  //Si la valeur est plus petite, on déclenche une exception, par exemple.
                  else
                        thrownewException();
            }
      }
}

Maitenant, lorsque l'on assignera une valeur à la variable inclinaison, on passera par la propriété (méthode get-set de la variable) et le test sur la valeur sera effectué.

Personnellement, le nom de la variable commence avec une minuscule (inclinaison) et la propriété avec une majuscule(Inclinaison):

inclinaison_visual_studio

Mais à toi de voir comment tu veux faire, chacun son style.

Bon, moi je vais me recoucher.
Si tu as pas compris quelques choses, n'hésite pas


mercredi 13 août 2008 à 08:10:46 | Re : get set

Bidou

Administrateur CodeS-SourceS
Salut,
Il y a également d'autres avantages, comme par exemple le fait que les properties sont abondamment utilisées pour le binding.
Y'avait un topic assez intéressant sur le forum à ce sujet, mais c'est assez vieux et j'ai pas le courage de me lancer dans une recherche



-My Blog-

mercredi 13 août 2008 à 10:15:10 | Re : get set

chouchoune80

Merci beaucoup!!

C'est plus clair que sur msdn....Rien ne vaut un exemple.
Encore merci : )

mercredi 13 août 2008 à 11:33:14 | Re : get set
mercredi 13 août 2008 à 17:52:18 | Re : get set

Bidou

Administrateur CodeS-SourceS
Exacte, merci d'avoir fait la recherche ;-)



-My Blog-

jeudi 25 juin 2009 à 12:04:03 | Re : get set

jmistinguette

salut !
Ma question va certainement vous paraitre bête mais alors quand on a une fonction Get comme la mienne par exemple:

publicint Id{
   get{
         if (_id >= 0)
         return _id;

         s
tring prefixe = _libelle.Substring(0, 1);
         
if ("0123456789".Contains(prefixe)){
            _id =
Int32.Parse(_libelle.Trim());
         }
         else{
            _prefixe = prefixe;
            _libelle = _libelle.Substring(1);
            _id =
Int32.Parse(_libelle.Trim());
         }

         return _id;
      }
}

Comment fait-on pour avoir une fonction par exemple GetId qui fait la même chose que ma fonction "publicint Id " mais sans utiliser l'accesseur get...

merci ;)



Cette discussion est classé dans : set, get


Répondre à ce message

Sujets en rapport avec ce message

Changement du nom des labels [ par izdi123 ] J´essaye de faire un contolUser que je vai utiliser dans mon application.Ce controlUser contient  un trackBar qui est mis dans un groupebox.J´ai aussi instanciation IWebBrowser2 [ par netTPH ] Salut !je n'arrive pas à créer un objet IWebBrowser2...je viens à peine de me mettre en c# donc, j'ai surement écrit une bêtise quelconque Voilà le co Accesseurs : Get et Set [ par fmad19 ] Bonjour,Je souhaiterais connaitre la manière de faire pour créer automatique un get et un set d'une proprieté avec l'IDE Visual Studio ?Merci défintion d'un tableau dans une classe [ par borgeomi ] borgeomibonjouuuuuuur !!!!! borgeomibonjouuuuuuur !!!!!J'ai une classe DataEis je récupère dans une zone string des horaires de la Get/Set fait une boucle => StackOverflowException [ par Siteauludo ] Bonjour,dans mon programme, j'utilise ce petit bout de code :/// Settings et Objets perso [ par Yxion ] Salut,Sur un projet, j'ai essayé d'utiliser le fichier setting pour enregistrer un objet perso. Mon pb, c'est que ca n'enregistre pas réellement : tan Accesseur d'un Point [ par olibara ] BonjourParfois je reste encore bloqué sur des truc tres bete  mais je continue a apprendre Je veux ecrire l'accesseur d'un pointprivate point center;p Serialization d'une classe [ par olibara ] Bonjour Je voudrais comprendre la methode la plus simple pour sauver le contenu d'une classe dans un fichier afin de la recuperer ensuite Bien sur c# asp encapsulation [ par gatina ] bonjour voila je suis actuellement en stage et je doit utiliser les langage c# et asp mais je ne m'y conné pas du tous et je n'arrive pas a trouver de besoin daide - probleme de classe et renvoi dinformation [ par kev411 ] Bonjour je vous explique mon probleme , jai une bibliotheque de classe et dans cette bibliotheque je possede une classe Artiste une classe Artistes qu


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,468 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.