Bonjour,
Déjà je vous assure que j'ai parcouru pas mal de forum et cours avant de venir poser la question ici. Je ne trouve pas la réponse à ce cas qui pourtant à mon avis est simple...
je veux faire une classe (ou interface) pour pourvoir déclarer de manière général un objet et ensuite en fonction du choix de l'utilisateur (que j'ai simulé ici avec un random) je veux pouvoir utiliser des méthodes qui ont le même nom pour chacun d'entre eux mais qui sont néanmoins différentes de par leurs signatures. Voila ce que j'ai écrit pour l'exemple mais qui ne compile pas :
j'ai tenté de caster animal, j'ai tenté de définir 2 méthodes dans Animal avec des signatures différentes pour renvoyer vers la bonne classe... je n'y arrive pas. L'idée est de définir un Animal de manière générale dans mon code et en fonction du choix de l'utilisateur d'adapter la méthode appelée...
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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 public class Animal { } public class Poisson : Animal { public void Manger(string nourriture) { Console.WriteLine("Le poisson mange" + nourriture); } } public class Chien : Animal { public void Manger(string nourriture,string boisson) { Console.WriteLine("le chien mange" + nourriture +" et "+ boisson); } } class Program { static void Main(string[] args) { Animal animal = new Animal(); var _random = new Random(); //Simule le choix de l'utilisateur decimal tirage = _random.Next(2); if (tirage < 1) { Chien medor = (Chien)animal; } else { Poisson bubulle = (Poisson)animal; } Console.WriteLine(tirage + " donc " + animal.GetType()); if (animal.GetType() == typeof(Chien)) { animal.Manger("croquettes", "eau"); } else { animal.Manger("nourriture pour poissons"); } Console.ReadLine(); } }
Partager