C# Language Anónimo vs dinámico


Ejemplo

Los tipos anónimos permiten la creación de objetos sin tener que definir explícitamente sus tipos antes de tiempo, mientras se mantiene la comprobación de tipos estática.

var anon = new { Value = 1 };
Console.WriteLine(anon.Id); // compile time error

Por el contrario, la dynamic tiene una comprobación dinámica de tipos, optando por errores de tiempo de ejecución, en lugar de errores de compilación.

dynamic val = "foo";
Console.WriteLine(val.Id); // compiles, but throws runtime error