日期:2014-05-18  浏览次数:20698 次

c#4.0中动态语言在运行时才发现错误,为啥微软还是要使用动态语言?
我看完accelerated c# 2010后,感觉奇怪,这样编译时发现的错误要等到运行时才发现,不是倒退了吗?

书里面有一个:c#的静态,强类型性有时也会在一些地方带来麻烦,那些地方经常涉及互操作性。
上面这句话没有解释,请问为啥动态语言在互操作性方面比静态语言好?

------解决方案--------------------
一切为了变化

给你一样东西,我确定的告诉你一定有 “可以吃” 方法
我给你的可能是面包,可能是子弹,也可能是其他所有种种

他们并没有实现 统一的接口,也没有必要和可能实现统一的接口

按照 obj接收呢?你又调用不到“可以吃”的方法

那怎么办呢?

来吧,动态语言,为了确定又不确定的变化
------解决方案--------------------
不是给C#自己用的,是为了方便调用其他动态语言的
------解决方案--------------------
说的好深奥啊,不懂
------解决方案--------------------
可以提高灵活性嘛
------解决方案--------------------
用错不能怪语言啊。。。。。
语言知识给你提供了方法,怎么做事人的事儿
动态语言用起来很方便啊
------解决方案--------------------
几乎所有用静态语言编写的复杂软件,都会最终演变成一个以它的配置文件为DSL的动态语言解释器。这句话有点拗口,你可以这么理解,比如说你用了一个叫Hibernate的东西,它会让你去配置一个配置文件。Hibernate代码中很多实现就是用来根据配置文件实现相应的功能,这个配置文件本身如果产生错误,也只能到运行的时候才能发现。你可以把这个配置文件看成一种叫Hibernate配置文件脚本的语言。既然这样,那还不如用动态语言。