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();