Bonjour,

Je viens de passer deux jours a triturer mon code et a rechercher une solution a mon probleme actuel, et comme je fais choux blanc, je viens demander de l'aide.

Mon Project actuel:
Un formulaire comportant plusieur ListBox qui chacunes montrent les collections d'objects qui leurs appartiennent respectivement. Ces objects sont eux-meme des collections d'objects de base.

Mon Probleme:
Je pensais faire appel aux Generics mais je crois ne pas avoir tout saisie a leurs propos.

Au debut mes objects ressemblaient a ca:

Code - Class ItemPool : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
    public class ItemPool
    {
        public List<Item> Items { get; set; }
 
        public ItemPool()
        {
            this.Items = new List<Item>();
        }
    }

Code - Class Item : 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
 
public class Item
   {
        public string ItemGrade { get; set; }
        public string Type { get; set; }
        public string Manufacturer { get; set; }
        public string Prefix { get; set; }
        public string Title { get; set; }
        public int Quantity { get; set; }
        public int Quality { get; set; }
 
        public Item(List<string> ItemPart, List<int> ItemSpecification)
        {
            this.ItemGrade = ItemPart[0];
            this.Type = ItemPart[1];
            this.Manufacturer = ItemPart[2];
            this.Prefix = ItemPart[3];
            this.Title = ItemPart[4];
            this.Quantity = ItemSpecification[0];
            this.Quality = ItemSpecification[1];
        }
}

Mais je me suis dis: pourquoi ne pas avoir toutes ces Propriety en Generic et ensuite les instancier dans une list. Du coup j'ai cree la classe suivante:

Code - Class Element : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
public class Element<T>
    {
        public string Name { get; set; }
        public T Attribute { get; set; }
 
        public Element(string Name, T Attribute)
        {
            this.Name = Name;
            this.Attribute = Attribute;
        }
}

Tout semblait bien: cette classe prend un nom pour reference, puis avec un Type specifie, elle prend un attribut (initiallement je pensais que ca ne prendrait que une String ou un Interger). Mais en changeant ma classe Item, je tombe sur un os: Impossible d'instancier Element sans fournir le Type, que je ne peux connaitre d'avance.

Code - Class Item : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
   public class Item
    {
        public List<Element> Parts { get; set; }
 
        public Item(List<string> ItemParts)
        {
            this.Parts = ItemParts;
        }
    }

Au moment de la compilation ca me retourne le message suivant:

Error 1 Using the generic type 'Factory.Element<T>' requires '1' type arguments C:\Users\...\Factory\Item.cs 31
Bref, est-ce que je suis en train de totalement de tromper ou y a t'il un moyen d'utiliser les Generic Type dans ce cas la ???

Merci d'avance.