Instanciation conditionnelle d'un objet
Bonjour
J'ai une question concernant le polymorphisme
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| abstract class Mere
{
public Mere(){}
public abstract void MyMethod();
}
class Fille1 : Mere
{
public Fille1(){}
public override void MyMethod(){//implementation 1}
}
class Fille2 : Mere
{
public Fille2(){}
public override void MyMethod(){//implementation 2}
} |
puis quand je fait:
Code:
1 2 3 4 5 6 7 8 9 10 11
| Mere Inst_Mere;
if (cond1)
{
Inst_Mere = new Fille1();
}
else(cond1)
{
Inst_Mere = new Fille2();
}
Inst_Mere.MyMethod(); |
il me sort:
Citation:
"Use of unassigned local variable Inst_Mere"
Est-ce que l'instanciation dans une structure conditionnelle n'est pas permise?
Y'a-t-il une manière plus propre d'implémenter le polymorphisme de méthodes en C#?
Merci pour vos eclaircissements.