Anders Hejlsberg 在 PDC08 發表《The Future of C#》。C# 1.0 模仿 Java、2.0 加入泛型、3.0 語法糖與 LINQ、4.0 引入動態特性,持續提升開發產能。

註:VS2010 統一 .NET Framework / C# / CLR 版本號為 4.0。
新關鍵字 dynamic:靜態類型為 dynamic,但繞過編譯時期型別檢查,調用解析延遲至執行期。
舊版反射寫法:
object calc = GetCalculator();
Type calcType = calc.GetType();
object res = calcType.InvokeMember("Add", BindingFlags.InvokeMethod, null, new object[] { 10, 20 });
int sum = Convert.ToInt32(res);
C# 4.0 dynamic:
dynamic calc = GetCalculator();
int sum = calc.Add(10, 20); // 編譯通過,執行時解析 Add 方法
dynamic 物件調用任何成員,不檢查存在性。RuntimeBinderException。dynamic,IntelliSense 顯示為 dynamic。