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 :

[C#4] Construction de mes classes métier


Sujet :

Dotnet

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    205
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2006
    Messages : 205
    Points : 125
    Points
    125
    Par défaut [C#4] Construction de mes classes métier
    Bonjour,

    un petit soucis se pose pour moi afin de programmer le moins

    j'ai une classe mère Tree
    ses classes filles sont Fal, Program, Station...

    et je voudrais charger mes données qui en fonction du type de mon objet, il va chercher la bonne fonction et me retourne une collection du type de cette objet

    en gros quelque chose comme ça :

    Code c# : 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
     
        public class TreeData<T> where T : Tree
        {
            private ObservableCollection<T> tree;
     
            //private delegate ObservableCollection<T> TreeHandler();
     
            public ObservableCollection<Fal> GetTree
            {
                get
                {
                    if (tree != null) return tree;
                    tree = new ObservableCollection<Fal>()
                    {
                            new Fal(1, "Fals", 18, 1, 0),
                            new Fal(3, "AAA", 3, 2, 1),
                            new Fal(4, "EE", 17, 4, 1),
                            new Fal(5, "EEA", 6, 5, 2),
                            new Fal(6, "EEB", 16, 7, 2),
                            new Fal(7, "EEBA", 9, 8, 3),
                            new Fal(8, "EEBB", 11, 10, 3),
                            new Fal(9, "EEBC", 13, 12, 3),
                            new Fal(10, "EEBD", 15, 14, 3)
                    };
     
                    return tree;
     
     
                }
            }
     
            public ObservableCollection<Station> GetTree
            {
                get
                {
                    if (tree != null) return tree;
                    tree = new ObservableCollection<Station>()
                    {
                        // Instantiation....
                    }
                    return tree;
                }
            }
        }
    }

    sauf que ici ça ne marche pas vu que je peux pas convertir un type fal ou station en T

    Avez vous des idées de comment il faudrait faire pour se rapprocher de ça ?
    comme mes classe Fal, station etc.. on la meme structure... J'aimerais pouvoir utiliser la généricité pour créer le moins de chose possible surtout quand c'est pareil...

    Merci d'avance pour votre aide !

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 177
    Points : 4 489
    Points
    4 489
    Par défaut
    crée une interface

    Parler un peu vite moi ;-)

    Peut-etre regarder au niveau de de co-variance et contre-variance si tu trouves pas ton bonheur
    Je ne suis qu'un pauvre débutant alors ne frappez pas si mes idées ne sont pas bonnes

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    205
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2006
    Messages : 205
    Points : 125
    Points
    125
    Par défaut
    c'est déjà sympa de m'avoir répondu ! Merci à toi


    Par contre je trouve dommage que C# n'utilise toujours pas l'héritage multiple et la covariance et la contravariance sur les classe et non juste sur les interfaces...

    Vive le langage Nit je dis xD

    Par ailleurs, je vois pas comment créer une interface va m'aider dans mon cas

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 177
    Points : 4 489
    Points
    4 489
    Par défaut
    Ca me semble logique que ca marche pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ObservableCollection<Fal> ocollection
    foreach (Tree t in tree)
    {
    if (t is Fall) ocollection.Add((Fal)t)
    }
    Je ne suis qu'un pauvre débutant alors ne frappez pas si mes idées ne sont pas bonnes

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de construction d'une classe
    Par AraBorLeg dans le forum Langage
    Réponses: 2
    Dernier message: 05/12/2005, 19h07
  2. [MFC] où instancier mes classes?
    Par giova_fr dans le forum MFC
    Réponses: 3
    Dernier message: 26/07/2005, 13h15
  3. Réponses: 7
    Dernier message: 11/04/2005, 22h23
  4. construction d'une classe
    Par r0d dans le forum C++
    Réponses: 10
    Dernier message: 16/09/2004, 17h35
  5. ClassWizard --> comment lui faire reconnaitre mes classes
    Par bigboomshakala dans le forum MFC
    Réponses: 6
    Dernier message: 06/05/2004, 10h50

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