J'ai entendu/lu ce terme mais je ne comprends pas bien ce qu'il signifie.
Quand dois-je utiliser cette technique et comment dois-je l'utiliser ? Quelqu'un peut-il me fournir un bon exemple de code ?
J'ai entendu/lu ce terme mais je ne comprends pas bien ce qu'il signifie.
Quand dois-je utiliser cette technique et comment dois-je l'utiliser ? Quelqu'un peut-il me fournir un bon exemple de code ?
Liste complète du code de travail
using System;
using System.Linq;
namespace TestConsoleApp
{
internal class Program
{
public static void Main(string[] args)
{
const int x = 5;
var dispatch = new DoubleDispatch();
Console.WriteLine(dispatch.Foo<int>(x));
Console.WriteLine(dispatch.Foo<string>(x.ToString()));
Console.ReadLine();
}
}
public class DoubleDispatch
{
public T Foo<T>(T arg)
{
var method = GetType()
.GetMethods()
.Single(m =>
m.Name == "Foo" &&
m.GetParameters().Length == 1 &&
arg.GetType().IsAssignableFrom(m.GetParameters()[0].ParameterType) &&
m.ReturnType == typeof(T));
return (T) method.Invoke(this, new object[] {arg});
}
public int Foo(int arg)
{
return arg;
}
public string Foo(string arg)
{
return arg;
}
}
}
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
0 votes
Actuellement, c'est la meilleure façon de procéder : blogs.msdn.microsoft.com/curth/2008/11/15/
0 votes
Excellent exemple de double envoi à Appliquer la composition d'objets pour construire des modèles de domaine riches .
0 votes
Attention à la double expédition . Vous pouvez probablement l'éviter pour une meilleure maintenance du code.