Forcer la compilation [Résolu]

fdouieb 264 Messages postés vendredi 12 décembre 2003Date d'inscription 12 juin 2013 Dernière intervention - 6 oct. 2005 à 10:59 - Dernière réponse : cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention
- 8 oct. 2005 à 20:51
Bonjour



Est- il possible de forcer la compilation a accepter le code sachant que
lorsqu'il s'exécutera il sera bon. Je m'explique via un exemple



je possède 3 fenêtres wTest1 et wTest2 avec chacune le membre
"iwTips" et une fenêtre wTips



le constructor de la fenetre wTips est comme suit:



public wTips(System.Windows.Forms.Form
awParent)

{


iwParent = awParent;

awParent.iwTips =
this; <==== c'est cette ligne que je voudrais forcer a la
compilation

InitializeComponent();

}



sachant que la fenêtre wTips ne sera exécuté que par wTest1 ou wTest2



Remarque: dans ce cas présent il serait possible de faire ((wTest1)
awParent).iwTips ou idem avec wTest2 mais ce n'est pas ce que je recherche. C'est
réellement de forcer la compilation.











<!--[if !supportLineBreakNewLine]-->

<!--[endif]-->
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 8 oct. 2005 à 18:02
3
Merci
Si tu veux vraiment échapper au cast et à l'interface je te propose ça :

public wTips(System.Windows.Forms.Form awParent)
{
iwParent = awParent;


// awParent.iwTips = this;
PropertyInfo prop = awParent.GetType().GetProperty("iwTips");
if ( prop != null )
{
// si la propriété existe, on affecte
prop.SetValue(awParent, this, null);
}


InitializeComponent();
}
...

Mais je pense que tu vas preferer la définition d'une interface comme le propose seb, c'est beaucoup plus logique.

Cocoricoooooooo !!!!
coq
MVP Visual C#

Merci cs_coq 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 120 internautes ce mois-ci

Commenter la réponse de cs_coq
sebmafate 4947 Messages postés lundi 17 février 2003Date d'inscription 14 février 2014 Dernière intervention - 6 oct. 2005 à 11:10
0
Merci
bah nan... ce n'est pas possible... puisque la classe Form ne possède pas de propriété iwTips !

Sébastien FERRAND
Commenter la réponse de sebmafate
fdouieb 264 Messages postés vendredi 12 décembre 2003Date d'inscription 12 juin 2013 Dernière intervention - 6 oct. 2005 à 11:16
0
Merci
Je comprend tas reponse qui est logique a premiere vue. Mais est ce que
tu comprend que lors de l'execution l'appli ne va pas planter car
wTest1 et wTest2 possede la propriete iwTips.
Commenter la réponse de fdouieb
sebmafate 4947 Messages postés lundi 17 février 2003Date d'inscription 14 février 2014 Dernière intervention - 6 oct. 2005 à 11:23
0
Merci
oui... mais je crois que tu n'as pas bien compris les principes de la POO...

l'objet que tu manipules là n'est pas un wTest1 ou un wTest2... mais un Form... et donc Form n'a pas de propriété iwTips.

donc, la solution c'est ca :

public wTips(System.Windows.Forms.Form awParent)
{
iwParent = awParent;
if (awParent is wTest1) {
((wTest1)awParent).iwTips = this;
}
if (awParent is wTest2) {
((wTest2)awParent).iwTips = this;
}
InitializeComponent();
}

Mais le plus propre sera d'avoir une interface commune avec toutes les propriétés, méthodes et autres évènements que tu veux utiliser... et ensuite tu les impléments dans tes formulaires.

Sébastien FERRAND
Commenter la réponse de sebmafate
fdouieb 264 Messages postés vendredi 12 décembre 2003Date d'inscription 12 juin 2013 Dernière intervention - 8 oct. 2005 à 20:11
0
Merci
Coq tu as tres bien compris le principe de ce que je cherche mais le problem c'est que tas methode ne fonctionne pas. En effet, dans ton exemple prop reste toujours null meme lorsque awParent provient de wTest1???
Commenter la réponse de fdouieb
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 8 oct. 2005 à 20:16
0
Merci
La propriété (ou parle bien d'une propriété ?) iwTips est définie dans les classes wTest1 et wTest2 ou dans une classe dont elles héritent ?
Quel est leur niveau d'accessibilité ?

Cocoricoooooooo !!!!
coq
MVP Visual C#
Commenter la réponse de cs_coq
fdouieb 264 Messages postés vendredi 12 décembre 2003Date d'inscription 12 juin 2013 Dernière intervention - 8 oct. 2005 à 20:27
0
Merci
public wTest1.wTips iwTips


Membre de Test1.wTest1
Commenter la réponse de fdouieb
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 8 oct. 2005 à 20:51
0
Merci
Donc quand tu passes une instance de wTest1 ça devrait réussir à localiser la propriété iwTips.
Je ne vois pas pourquoi ça ne passe pas.

Mais regarde plutot du coté de la définition d'une interface, ça correspond très bien a ce que tu veux faire, et ça sera plus simple et plus performant.

Cocoricoooooooo !!!!
coq
MVP Visual C#
Commenter la réponse de cs_coq

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.