begin process at 2010 02 10 02:44:43
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Mono

 > 

Général

 > 

get set


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

get set

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ée 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...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,515 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales