对于一个静态类型的家伙来说,C#4有什么新功能

对于一个静态类型的家伙来说,C#4有什么新功能,c#,.net-4.0,C#,.net 4.0,首先让我说,我知道动态,无PIA,命名和可选参数,最后是协方差和逆变 在我的项目中,99%的时间我的代码都是C#,我几乎从未做过办公自动化,我不打算在短期内使用任何动态语言,而且,除了办公自动化所必需的之外,我认为命名参数和可选参数是错误的(不,重载不算,如果有那么多重载,问题在于设计,而不是语言) 那么,对于一个静态类型世界中的C#guy来说,唯一的东西似乎是协方差和逆变,这听起来很棒,但我希望有更多的东西。我唯一兴奋的尝试是Linq的并行扩展,但仅此而已(这是[适用于3.5版]) 为什么你对

首先让我说,我知道动态,无PIA,命名和可选参数,最后是协方差和逆变

在我的项目中,99%的时间我的代码都是C#,我几乎从未做过办公自动化,我不打算在短期内使用任何动态语言,而且,除了办公自动化所必需的之外,我认为命名参数和可选参数是错误的(不,重载不算,如果有那么多重载,问题在于设计,而不是语言)

那么,对于一个静态类型世界中的C#guy来说,唯一的东西似乎是协方差和逆变,这听起来很棒,但我希望有更多的东西。我唯一兴奋的尝试是Linq的并行扩展,但仅此而已(这是[适用于3.5版])


为什么你对C#4感到兴奋?

从非COM、非动态的角度来看,C#4中唯一令人兴奋的是协方差和逆变。其他一切都围绕着动态键入。工具箱中现在有一个新的图表控件……是的,我没有其他东西了

  • 更好的垃圾收集

  • 新的线程池引擎

  • 代码合同

  • 如果您不进行ASP.NET WebForms开发,您不会在意,但是,这里也有显著的改进


  • …点击链接获取一些关于一些新特性的好资源。

    真正可选的默认参数,co/contrance(一直是Java的优势)和ParallelFX。

    +1用于代码契约(本身不是语言特性,但足够接近)嗯……这些都是很酷的东西,但没有一个是语言功能。我对你的答案投了更高的票,因为你带来了一些重要的观点,但选择了Andrew的答案,因为问题是关于C#4功能“动态编程?”动态类型似乎是一个更好的词,因为动态编程主要与问题解决策略相关联:可选参数和命名参数与动态类型无关。在我看来,这应该是一个社区Wiki。就新的语言功能而言,C#4.0是一个故意的小版本。我们一直得到的反馈是“请停止添加疯狂的新功能;花些时间使您现有的功能与您正在发布的其他功能配合良好!“这就是我们所做的。所有新的C#4.0功能都专注于使动态语言、静态语言和遗留对象模型/接口更顺畅地协同工作。使互操作性更顺畅并不令人兴奋,因此您对此不感到兴奋也就不足为奇了。我们的目标是生产有用的工具,而有用并不总是令人兴奋的。