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

Dotnet Discussion :

Generic Type: La solution?


Sujet :

Dotnet

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2004
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2004
    Messages : 6
    Par défaut Generic Type: La solution?
    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.

  2. #2
    Membre chevronné
    Inscrit en
    Octobre 2005
    Messages
    400
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 400
    Par défaut
    essaie un truc comme

    Code : 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<string>> Parts { get; set; }
     
            public Item(List<Element<string>> ItemParts)
            {
                this.Parts = ItemParts;
            }
        }

Discussions similaires

  1. ADA package generic type non visible
    Par koda29 dans le forum Ada
    Réponses: 4
    Dernier message: 02/05/2010, 20h31
  2. Réponses: 1
    Dernier message: 29/05/2009, 09h11
  3. Warning "ArrayList is a raw type. References to generic type ArrayList<E>
    Par sandrine49 dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 10/08/2008, 10h48
  4. Réponses: 3
    Dernier message: 06/03/2008, 21h59
  5. Réponses: 5
    Dernier message: 27/10/2006, 15h34

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