El problema del envío único es más familiar para las personas que se dedican a la codificación con lenguajes tipados estáticos como Java y C#. La idea básica es:¿El nuevo tipo de variable "dinámica" en .NET 4.0 resuelve el problema de envío de método único/múltiple en CLR?
Mientras que el polimorfismo en tiempo de ejecución permite que enviemos a la llamada al método correcto de acuerdo con el tipo (tipo de tiempo de ejecución) de receiver
, por ejemplo:
IAnimal mything = new Cat();
mything.chop();
se realizará la llamada al método de acuerdo al tipo de tiempo de ejecución mything
, a saber Cat
. Esta es la capacidad de envío único (que está presente en Java/C#).
Ahora, si necesita enviar no sólo en el tipo de ejecución del receptor, sino en los tipos de (múltiples) argumentos o bien, que se enfrentan a un pequeño problema:
public class MyAcceptor {
public void accept (IVisitor vst) {...}
public void accept (EnhancedConcreteVisitor vst) {...}
}
El segundo método nunca se llama , porque en nuestro código de "consumidor" solo tendemos a tratar diferentes tipos de objetos (visitantes en mi ejemplo) por su supertipo común o interfaz.
Es por eso que pido - tipado dinámico porque permite que el polimorfismo de despacho múltiple y C# 4.0 tiene esa palabra clave dinámica;)
¿Cuál es el problema de envío único o múltiple de método? –
Actualizaré mi pregunta con el enlace de la wikipedia) – Bubba88
¿Eh, la pregunta es así de estúpida? ¿O solo extraño algo? – Bubba88