Bonjour à tous, je me permet de poster ici car je suis débutant et aurait une question quant à la meilleur pratique à adopter pour ce type de comportement.
Je possède deux classes Error et Information (que je n'ai pas implémenté, mais plus ou moins le même code que Error).
Ces deux classes possèdent des propriétés ainsi que des méthodes communes, mais aussi d'autres spécifiques. Plus tard dans le code les objets qui leur correspondent seront ajoutés à une liste contenant le type de base de ces deux classes.
Je voudrais donc savoir si la meilleure solution pour leur faire partager cela était de les faire hériter d'une interface, ou bien plutôt d'une classe abstraite (ou autre ?) ? Merci d'avance
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
public interface Interaction
{
    int Code { get; set; }
    string Message { get; set; }
    /* many others properties */
    void DoSomething();
}
 
public class Error : Interaction
{
    public int Code { get; set; }
    public string Message { get; set; }
    public Error() { /* initialize properties */ }
    public void DoSomething(){ /* implementation */ }
}
ou bien :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public abstract class Interaction
{
    int Code { get; set; }
    string Message { get; set; }
    public Interaction(int Code, string Message) { /* initialize properties */ }
    /* many others properties */
    public abstract void DoSomething();
}
 
public class Error : Interaction
{
    public Error(int Code, string Message) : base(Code, Message) {  }
    public override void DoSomething(){ /* implementation */ }
}