2009-01-13 42 views
2

在他的PDC谈话中,Anders表示动态关键字会在运行时调度对其进行的任何函数调用。.NET 4.0 - “动态”关键字

然后,他继续说,在编译时检查“dynamic”关键字本身是静态类型的。

现在,如果您要调用一个不存在于“动态”类型的方法 - 是否会导致运行时错误?

将C#4.0语言称为静态类型检查语言是正确的吗?

还是我在这个演讲中没有得到安德雷斯所说的?

回答

4

C#仍然有静态类型检查,但有趣的是,说引用的静态类型是“动态的”。 IIRC dynamic的实际类型是object,带有一个特殊的IL标志来指示它是动态解析的。当然,如果实际类型不支持给定的操作,则会引发异常。