j'ai une classe de base appelée la tâche qui ressemble à ceci:Fonction mise en œuvre
public class Task{
List<Task> subTasks = new List<Task>();
public T executeTask<T>(){
foreach(Task tsk in subTasks){
tsk.executeTask();
}
}
}
Et puis j'ai plusieurs autres tâches qui héritent de la classe des tâches comme Taska, TaskB et ainsi de suite. Ils devraient tous avoir leur propre implémentation de executeTask. Le problème auquel je fais face est que certaines Tâches effectuent des calculs et que certaines effectuent des opérations de chaîne par exemple et renvoient le résultat de l'opération, ce qui signifie que le type de retour doit être flexible ou au moins ne pas avoir besoin d'un énorme quantité de casting.
Est-ce que quelqu'un a une bonne idée sur la façon de mettre en œuvre cela?
Pas une idée très brillante d'avoir une classe nommée Tâche (et êtes-vous sûr de ne pas réinventer la roue? [Tâche de classe] (https://msdn.microsoft.com/en-us/library/system. threading.tasks.task (v = vs.110) .aspx)) – Steve
Si vous n'êtes pas sûr de la raison pour laquelle Steve a écrit son commentaire, voici une référence à un rôle central de classe jouant dans la façon dont C# gère l'exécution asynchrone: [' Task'] (https://msdn.microsoft.com/en-us/library/system.threading.tasks.task%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396). – dasblinkenlight
Non, le nom Tâche n'était qu'un exemple. C'est en fait une autre classe avec plus de choses, ce qui n'influence pas le problème – Curunir