En C# 4.0, tenemos el tipo dinámico, pero ¿cómo invocar el método estático del objeto de tipo dinámico?¿Cómo invocar el método estático en C# 4.0 con el tipo dinámico?
El siguiente código generará una excepción en el tiempo de ejecución. El objeto dinámico pertenece a la clase C#, pero podría ser objeto de otros idiomas a través de DLR. El punto no es cómo invocar el método estático, sino cómo invocar el método estático del objeto dinámico que no se pudo crear en el código C#.
class Foo
{
public static int Sum(int x, int y)
{
return x + y;
}
}
class Program
{
static void Main(string[] args)
{
dynamic d = new Foo();
Console.WriteLine(d.Sum(1, 3));
}
}
en mi humilde opinión, dinámica se inventó para tender un puente sobre C# y otros lenguajes de programación. Existe algún otro lenguaje (por ejemplo, Java) que permite invocar el método estático a través del objeto en lugar del tipo.
BTW, la introducción de C# 4.0 no es tan impresionante en comparación con C# 3.0.