Gestion de type avec classe possédant 2 constructeurs

Résolu
Ishizaki Messages postés 51 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 4 décembre 2008 - 21 janv. 2008 à 17:15
Ishizaki Messages postés 51 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 4 décembre 2008 - 23 janv. 2008 à 09:57
Hello tout le monde !

Une petite question qui pourrait paraître anodine mais dont la réponse m'échappe...

J'ai une classe possédant 2 constructeurs selon l'objet entré en paramètre :

Code :

 public class MaClasse
    {
        /// <summary>
        /// Constructeur
        /// </summary>
        ///

        public MaClasse( MonObjet1 objet1 )
        {
           //Initialisations....
        }

        /// <summary>
        /// Constructeur
        /// </summary>
        ///

        public MaClasse(MonObjet2 objet2)
        {
            //Initialisations....       
        }

//Propriétés...
}

J'ai une page remplissant les données de MonObjet1 et une autre remplissant les données de MonObjet2.

Pour chaque page, il s'agit d'une liste de données (les objets en question étant des vues contenues dans des GridView).

Ce que je souhaite faire, c'est, lorsque je clique sur une donnée, dans une des deux pages dans un gridview, j'atteinds le detail de cette donnée, et je voudrais atterrir sur la MEME page( cette page de detail serait donc commune aux 2 pages précédemment citées).

D'où la création de ma classe MaClasse plus haut, qui, sur la page de détail, va initialiser les données, selon que ce soit MonObjet1 ou MonObjet2.

Donc, j'avais pensé dans ma page de détail de faire la chose suivante :

 protected void Page_Load(object sender, EventArgs e)
    {
          //J'ai une classe permettant de recuperer les valeurs d'un objet entrés sur la page de données
         //Ces valeurs déterminent quel objet utiliser en quelques sortes:
         //this.IntermediairePage[SubPageIntermediaire.MonObjet]
          MonObjet1 monObjet1 = this.IntermediairePage[SubPageIntermediaire.MonObjet1] as MonObjet1;//Ceci ne me permet que de choisir un seul objet... :(
         
          MaClasse instanceMaClasse = new MaClasse(MonObjet1 ou MonObjet2);

    }

Je ne sais pas si vous avez compris, mais en gros, je voudrais récupérer le bon objet, grossomodo le type de : this.IntermediairePage[SubPageIntermediaire.MonObjet] de type MonObjet
et ensuite l'utiliser pour instanceMaClasse comme ceci : MaClasse instanceMaClasse = new MaClasse(TypeObjetRécupéré), ce qui va en conséquence utiliser l'un ou l'autre de mes constructeurs.

J'espère avoir été assez clair et vous remercie d'avance pour votre aide .
je quote tu quotes...

2 réponses

Ishizaki Messages postés 51 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 4 décembre 2008
23 janv. 2008 à 09:57
J'ai trouvé (avec l'aide de quelqu'un ^^).

Je dois modifier ma classe pour pouvoir changer de type selon l'objet entré en paramètre et pouvoir remplir les propriétés.

Code :

Public MaClasse(object MyObject)
if(MyObject
is ObjectType1)

        {

              
_myProperty1 = (MyObject as ObjectType1).Property1

        }

        else if(MyObject is ObjectType2)

        {

               _myProperty2 = (MyObject as
ObjectType2).Property2

        }

 }

A plus !

je quote tu quotes...
3
Ishizaki Messages postés 51 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 4 décembre 2008
21 janv. 2008 à 17:29
Je voudrais ajouter que j'ai essayé de caster et d'utiliser des GetType()...
Je ne vois vraiment pas comment faire et ça a l'air pourtant si simple -__-...

je quote tu quotes...
0
Rejoignez-nous