C#动态类型语言

7 .net c# programming-languages

使用.NET 3.5中的新功能(例如var,Lambda,linq等)以及其他方法,我们可以得出结论,C#不仅是静态类型语言,还有动态类型

为什么或者为什么不?

编辑#1

正如以下许多海报所声称的那样,.net 4.0将为该语言添加动态类型.这会减慢语言吗?

每个版本csharp都需要使用不同语言的东西.就.Net1.1而言,我们的祖先甚至不打算将其作为功能语言......

编辑#2

我想很多人都误解了这个问题; 因为我指的是整体的C#语言,包括即将推出的4.0版本.因此,可以说语言是动态输入的......

And*_*are 12

C#不是动态类型的 - 在您提到的示例中,所有类型都是静态推断的.在接下来的C#版本将包括一些动态特征与COM和真正的动态语言的工作虽然.

[编辑#1]是的,C#的新动态功能将会变慢,因为使用它的一切都需要后期绑定.但是,如果您使用它,它只会减慢您的应用程序速度 - 它不是对核心语言本身的改变.C#4将是一种静态类型语言,具有使用后期绑定类型的能力.

[编辑#2]否C#4不是动态类型语言.C#4引入了一种新dynamic类型,它将替代类型成员的后期绑定,而不是静态类型检查.动态功能仅适用于这些动态类型.C#的底层类型系统没有改变.