C#匿名与动态
示例
匿名类型允许创建对象,而无需提前明确定义其类型,同时保持静态类型检查。
var anon = new { Value = 1 }; Console.WriteLine(anon.Id); //编译时间错误
相反,dynamic具有动态类型检查功能,可以选择运行时错误,而不是编译时错误。
dynamic val = "foo"; Console.WriteLine(val.Id); //编译,但引发运行时错误
匿名类型允许创建对象,而无需提前明确定义其类型,同时保持静态类型检查。
var anon = new { Value = 1 }; Console.WriteLine(anon.Id); //编译时间错误
相反,dynamic具有动态类型检查功能,可以选择运行时错误,而不是编译时错误。
dynamic val = "foo"; Console.WriteLine(val.Id); //编译,但引发运行时错误