|   |      1 
                                  74
                             什么是动态语言?一种语言是否是动态的通常指编译器所做的绑定类型:静态绑定或后期绑定。 静态绑定只是指在编译时绑定方法(或虚拟方法的方法层次结构)。运行时可能涉及虚拟调度,但方法令牌在编译时绑定。如果在编译时不存在合适的方法,您将收到一个错误。 动态语言则相反。他们在运行时完成工作。它们在编译时很少或根本不检查方法的存在,而是在运行时全部检查。 为什么C#不是一种动态语言?4.0之前的C#是一种静态绑定语言,因此不是一种动态语言。 为什么Ruby是未来的语言?这个问题是基于一个错误的前提,即确实存在一种语言,那就是编程的未来。今天没有这样的语言,因为没有一种语言最擅长完成所有需要完成的不同类型的编程。 例如,Ruby对于许多不同的应用程序来说都是一种很棒的语言:web开发是一种流行的语言。然而,我不会在其中编写操作系统。 | 
|   |      2 
                                  26
                             在动态语言中,您可以执行以下操作: 换句话说,类型不是静态的。在静态类型语言中,这将导致编译器错误。 C、C++、C#和Java等语言都是静态类型的。 Ruby、Python和Javascript等语言都是动态类型化的。 此外,这与“强或弱”类型不同。这些加在一起就不一样了。 | 
|   |      3 
                                  6
                             我对c#包含基本集合的方式感到震惊 编程范例。 我们可以说c是一个丰富的面向对象编程, 丰富的面向组件的编程, 集成良好的功能编程, 在不同类型的数据源(linq)上的查询操作的完整集合, 一种通过pLinq和并行扩展的并发编程的优雅方法, 在下一个版本(c#4.0)中将具有powerfull动态功能, 几乎可以肯定的是,在c#5.0中会有一套坚实的元编程 功能。 可以说,c#在集成所有这些强大功能方面做得很好 只要一个工具箱里的东西。在我看来,这是必须的, 因为从一种编程语言跳到另一种语言几乎总是非常痛苦。 | 
|   |      4 
                                  3
                             C#是一种静态类型的语言,因为在编译时需要知道所处理的每个对象的类型。在动态语言中,您不需要在编译时知道对象的类型。也许你导入了一些你以前不知道的类,比如导入文件夹中的所有类,比如插件之类的。甚至对象的类型也可能取决于用户交互。 您可以通过使用接口或基类来实现类似的效果,但这并不完全相同,因为您仅限于使用从该接口显式继承或实现该接口的类。 在动态类型化语言中,编译它时不在乎类型是什么,它会尝试调用您按名称指定的方法,如果对象上不存在该方法,它会引发运行时异常,因此由程序员来确保这种情况不会发生或正确处理它。您获得了灵活性,但在编译时错误检查方面损失了一些。 | 
|   |      5 
                                  3
                             查看 Wikipedia entry ,我们看到,动态语言是一种在运行时执行大多数在编译时执行的事情的语言。通常,在动态语言中,变量可以快速轻松地更改类型,并且通常没有单独的编译步骤(而是解释执行或快速编译)。C#是一种更传统的语言,使用变量声明并进行编译。 维基百科条目列出了许多动态语言。 另一方面,“X是未来的Y”意味着有人试图卖给你一些东西。(不一定是字面上的,但要试图以一种对演讲者方便的方式影响你的信仰。) | 
|   |      6 
                                  3
                             你知道VB6是静态和动态的吗? 如果您声明具有给定类型的变量,则会得到静态行为: 
   您现在只能访问
    
   如果您有一个类并添加
    您也可以这样声明变量: 
   现在intellisense不会给你任何帮助,VB6将允许你用它做任何你喜欢的事情
    这一行可以放在编译和运行的程序中,不会引起任何冒犯,尤其是在程序本身没有运行的情况下。只有当线路运行时,才会进行查找。 您还可以执行: 
   这将运行。是否
    
   然后
   
    任何
   
   任何实现的类的实例
    请注意,随着您变得越来越动态,运行时性能会受到影响。 | 
|   |      7 
                                  2
                             在C#3.0中,所有东西的类型都需要在编译时知道。这是一种静态语言。动态语言在运行时使用动态调度来决定事物的类型以及对这些事物调用什么方法。这两种语言都有其优点和缺点。C#4.0将增加动态功能。 Anders Hejlsberg gave a great talk on static v.s. dynamic languages and C# 4.0 at PDC. | 
|   |      8 
                                  2
                             动态语言通常被认为是能够动态地解释&在运行时生成代码。C#做不到。 还有动态类型&静态类型语言。动态类型化意味着变量的类型没有设置,并且可以在整个程序执行过程中更改。 | 
|   |      9 
                                  2
                             文字 静止的 和 动态 定义不明确。 然而,最常见的意思是两个问题: 1) 在静态语言中 变量的类型 (也就是说,变量可以包含或指向的值的类型)在程序过程中不能更改。例如,在C#中,定义变量时声明变量的类型,如: 
   现在
    2) 在静态语言中 对象的类型 无法更改。在动态语言中,对象可能会发生变化,您可以附加或删除方法和属性,从而基本上将其变成一个完全不同的对象。 | 
|   |      10 
                                  1
                             c是静态类型的,即int i=0;尝试将i设置为字符串。编译器会抱怨, 其中作为python,可以将用于保存整数的变量设置为保存字符串, 静态:类型是最终的, 动态:类型可以更改, c#正在尝试添加更多类似动态的特性,例如var | 
|   |      11 
                                  1
                             没有真正的“未来语言”。 不同的语言有不同的目的。 最多,你可以说Ruby 一 未来的语言。 根据维基百科: 
 Ruby是一种动态语言,而C#不是,因为Ruby是被解释的,C#是被编译的。然而,C#确实包含了一些使其看起来动态的特性。 | 
|   |      12 
                                  0
                             语言是动态类型化的,这意味着中的变量可以用于任何事情。 变量不是类型化的,值是。变量可以具有任何基元类型的值,也可以引用任何对象。 |