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 :

Tutoriel definitions de classes csharp


Sujet :

C#

  1. #1
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut Tutoriel definitions de classes csharp
    Bonjour

    Je developpe depuis qq semaine en Csharp et je trouve ce langauage tres agréable et puissant. Cependant que n'ai qu'une experience sommaire de la notion de classes et de la programmation objet.
    Je m'inspire beaucoup de la tres bonne expérience que j'ai du C

    J'aimerais trouver un petit tutoriel expliquant mieux le la notion et l'usage de classe (que j'interprete comme des structures)

    Exemple pratique ci apres, j'ai déclaré dans la classe de ma form une structure AddrList dont je fais une List et pour laquelle je definis deux comparer

    J'ai l'intuition qu'il aurait mieux valu mettre tout cela dans une classe a part

    Car :
    1- Je peux avoir besoin d'une sous liste dérivée de la premiere
    2- Je dois pouvoir exploiter ces listes dans plusieurs form

    J'aimerais quand meme un petit coup de pouce et conseil pour m'aider a extraire cela dans une classe : avantages et inconvénients.

    Merci beaucoup.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
      public partial class MainForm : Form
      {
     
        // Declaration de la liste des adresses
        // TODO: Changement de place.
     
     
     
        public struct AddrList
        {
          public int AddrId;
          public int X;       // X ecran
          public int Y;       // Y ecran
          public int WGSX;
          public int WGSY;
          public int order;
          public int ordern;
          public bool active;
        };
     
        public static List<AddrList> AddrLst = new List<AddrList>();
     
        public class AddrListIdComparer : IComparer<AddrList>
        {
          public int Compare(AddrList a, AddrList b)
          {
            return a.AddrId - b.AddrId;
          }
        };
        public class AddrListActiveOrderComparer : IComparer<AddrList>
        {
          public int Compare(AddrList a, AddrList b)
          {
            int dif;
            if (a.active == b.active)
            {
              if (a.active == false)
              {
                return 999;
              }
              dif = (a.order - b.order);
              return dif;
            }
            if (a.active == true) return -1;
            return 0;
          }
        };
     
        AddrListIdComparer compareId = new AddrListIdComparer();
        AddrListActiveOrderComparer compareActiveOrder = new AddrListActiveOrderComparer();

  2. #2
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Tu trouveras ton bonheur sur DVP, il faut juste chercher.
    Commence par là
    http://hdd34.developpez.com/cours/artpoo/

  3. #3
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut get set ??
    Merci

    C'est effectivement une bonne référence

    Mais il y a particulierement une notion que je n'ai pas bien assimilé ce sont les get / set que je vois un peu partout dans la définition de classes.

    Ca fait 6 semaines que je developpe en C# et bien plus que Hello World mais je n'ai jamais été confronté a l'usage de ces animaux qui semblent pourtant faire partie intégrante du monde objet !

  4. #4
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Citation Envoyé par olibara Voir le message
    Merci

    C'est effectivement une bonne référence

    Mais il y a particulierement une notion que je n'ai pas bien assimilé ce sont les get / set que je vois un peu partout dans la définition de classes.

    Ca fait 6 semaines que je developpe en C# et bien plus que Hello World mais je n'ai jamais été confronté a l'usage de ces animaux qui semblent pourtant faire partie intégrante du monde objet !
    Alors en fait dans une classe tu es d'accord que tu as des membres le plus souvent privés ok ? Donc personne ne peux y accéder sauf toi.

    Du coup pour exposer tes membres à tout le monde tu va leur donner accès à une propriété (get/set) afin qu'il puisse accéder à tes membres privés.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public class Humain
    {
       private Yeux mYeux;
     
       public Yeux Yeux
       {
          get { return mYeux; }
          set { mYeux = value; }
       }
    }
    Du coup si tu vas chez l'oculiste ben il a le droit d'accéder à tes yeux

    Pourquoi ne pas mettre tes yeux en public ? Ben parce que ce sont les tiens à toi, et que c'est un bonne pratique de POO de mettre ses membres en privés et de laisser le reste y accéder via des propriétés.

    Après par exemple tu peux mettre tes yeux que en lecture seule

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public Yeux Yeux
    {
       get { return mYeux; }
    }
    Du coup de l'extérieur personne ne pourra faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    toi.Yeux = new Yeux(Color.Red);
    PS : tu peux voir qu'en C# un propriété peut s'appeler du nom de l'objet qu'il retourne (ici ma propriété retourne un objet de type Yeux et se nomme aussi Yeux).

  5. #5
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut Ouvrir les yeux
    Merci de m'avoir ouvert les yeux

    Ca va j'ai capté 6 / 10, le reste c'est un peu d'expérience et d'accoutumance.
    Mais je commence a comprendre pourquoi ca me cassait les bonbons de tout declarer en public dans les qq classes que j'ai déja faites.

Discussions similaires

  1. definition de class dans une Interface
    Par Soulama dans le forum Langage
    Réponses: 9
    Dernier message: 17/12/2009, 09h28
  2. [Turbo Delphi 2006] Pbm definition de classe TGauge
    Par matazz dans le forum Langage
    Réponses: 5
    Dernier message: 05/05/2008, 12h07
  3. Réponses: 10
    Dernier message: 06/04/2007, 10h56
  4. [jsp] Error #: 482 : duplicate definition of class
    Par antigone dans le forum JBuilder
    Réponses: 4
    Dernier message: 24/07/2003, 10h18

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