cs_titi66
Messages postés120Date d'inscriptionmercredi 14 janvier 2004StatutMembreDernière intervention 3 mars 2009
-
14 juin 2005 à 15:35
cs_titi66
Messages postés120Date d'inscriptionmercredi 14 janvier 2004StatutMembreDernière intervention 3 mars 2009
-
15 juin 2005 à 08:57
Bonjour
J'ai crée un classe Usines et 3 classes en dérivant.
Voici le constructeur :
public Usines(
string str_doc,Type TypeACreer)
{
strDocumentXml = str_doc;
alBobines =
new ArrayList();
//Instantiate an XmlDocument object.
if ( (TypeACreer.IsSubclassOf(
typeof(Usines))) )
{
Type[] types =
new Type[1];
types[0] =
typeof(
string);
return (Usines)constructorInfoObj.Invoke(types);
}
else
{
MessageBox.Show("Type non supporté");
};
}
j'ai un 2°eme Constructeur :
public Usines(
string str_doc)
{}
Je veux dans mon Main appelé mon instancié Usines en lui passant en 2° parametre le nom de la classe dérivée qui doit être utlisée comme suit :
Usines v_Usine = new Usines(strDocument,typeof(Usine_derivee));
PB : le return (Usines)constructorInfoObj.Invoke(types); de mon constructeur ne passe pas à la compil ...
1/ l'idée de passer ce parametre vous semble t elle bonne ? sinon comment faire ?
2/ help pour le return ?
cs_titi66
Messages postés120Date d'inscriptionmercredi 14 janvier 2004StatutMembreDernière intervention 3 mars 2009 14 juin 2005 à 16:23
C'est ce que j'avais fais avant .
J'avais en fait 3 radiobutton
je choisissais l'usine cochant
if (rb_Usine1.Checked)
{ Usine1 v_Usine = new Usine1(strDocument) ;}
else if (rb_Usine2.Checked)
{ Usine2 v_Usine = new Usine2(strDocument) ;}
else if (rb_Usine3.Checked)
{Usine3 v_Usine = new Usine3(strDocument) ;}
Cela ne passe pas a la compil , type ou nom d'espace de nom v_Usines introuvable
je ne veux utiliser qu'une seule varible v_Usine pour les 3 cas, car dans la suite du code j'appelle plusieurs méthodes...
sebmafate
Messages postés4936Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention14 février 201437 14 juin 2005 à 16:36
ok... voici comment je ferais :
Je construirais une classe abstract Usine qui contiendrait toutes les membres communs à toutes les autres classes.
Après tu crées tes classes Usine1 à 3 en dérivant cette classe.
ce qui te permettra d'écrire :
Usine usine = new Usine3(strDocument);