匿名與動態

匿名型別允許建立物件,而無需提前顯式定義其型別,同時保持靜態型別檢查。

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

相反,dynamic 具有動態型別檢查,選擇執行時錯誤,而不是編譯時錯誤。

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