Bonjour,

J'ai une question par rapport à un souci d'héritage...

J'ai les classes et interfaces suivantes :

Code csharp : 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
17
18
19
20
21
22
23
24
 
public interface IMachin
{
     public void FaitUnTruc();
}
 
public class codeType : IMachin
{
     protected int id;
     public void FaitUnTruc()
     {
         Console.WriteLine("truc");
     }
}
 
public class nomType : codeType
{
     public string nom;
}
 
public class prenomType : nomType
{
     public string prenom;
}

Et une autre classe quelconque :
Code csharp : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
public class Bidulle
{
    public prenomType MonObjectAvecUnPrenom;
}

Et enfin plus loin dans le code j'ai ça :
Code csharp : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
    Bidulle oBidille = new();
    codeType o = oBidille.MonObjectAvecUnPrenom; // <= Ca plante ici en disant qu'une conversion implicite de prenomType vers codeType est impossible. Pourquoi ???