Al pasar dinámico al método, el resultado es una expresión dinámica, incluso si no es
En C # 5 cuando intenté pasar una dinámica como parámetro de método, el resultado por alguna razón se volvió dinámico.
class Program
{
static void Main(string[] args)
{
dynamic value = "John";
Find<int>(value).ToList();
}
public static IEnumerable<T> Find<T>(object value)
{
//SOME LOGIC
yield return default(T); //REAL RESULT
}
}
Find<T>(value)
tiene que volverIEnumerable<T>
. ¿Por qué el compilador piensa que es dinámico?
Yo sé esoFind<int>(val as object).ToList();
resuelve esto, pero quiero entenderPOR QUÉ Sucede.