2
在他的PDC谈话中,Anders表示动态关键字会在运行时调度对其进行的任何函数调用。.NET 4.0 - “动态”关键字
然后,他继续说,在编译时检查“dynamic”关键字本身是静态类型的。
现在,如果您要调用一个不存在于“动态”类型的方法 - 是否会导致运行时错误?
将C#4.0语言称为静态类型检查语言是正确的吗?
还是我在这个演讲中没有得到安德雷斯所说的?
在他的PDC谈话中,Anders表示动态关键字会在运行时调度对其进行的任何函数调用。.NET 4.0 - “动态”关键字
然后,他继续说,在编译时检查“dynamic”关键字本身是静态类型的。
现在,如果您要调用一个不存在于“动态”类型的方法 - 是否会导致运行时错误?
将C#4.0语言称为静态类型检查语言是正确的吗?
还是我在这个演讲中没有得到安德雷斯所说的?
C#仍然有静态类型检查,但有趣的是,说引用的静态类型是“动态的”。 IIRC dynamic的实际类型是object,带有一个特殊的IL标志来指示它是动态解析的。当然,如果实际类型不支持给定的操作,则会引发异常。