Bonjour
J'ai une question concernant le polymorphisme
Code : 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
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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:

"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.