在我看来,没有充分的理由不切换到 3.5。
真正的杀手级功能是您可以在使用所有新语言功能的同时继续针对运行时的旧版本(2.0+)。因此,您可以使用新的 lambda 表达式、扩展方法、匿名类型和所有其他好东西。如果您的客户仍然主要使用 2.0 框架,您可以继续针对较早的运行时。
(如果您必须针对早期的运行时版本,请不要使用 3.5 框架中的任何类。)
就我个人而言,我认为如果你正在做一个桌面 GUI 应用程序,你最好的选择是使用 3.0 或 3.5 框架,因为 WPF 是我曾经使用过的最好的用户界面库(从长远来看)。
另一方面,如果您已经在 WinForms 中编写了大部分 GUI,那么您可能会对 3.5 框架感兴趣,该框架允许(有限)混合 WinForms 和 WPF GUI 元素。您可以保留您已经完成的工作,但在任何有意义的地方都可以使用 WPF 控件添加一些不错的功能。
3.5 框架的另一个方便的特性是“Collection Initializers”。看一下这个:
var myDictionary = new Dictionary<String, String> {
{ "key-1", "value-1" },
{ "key-2", "value-2" },
{ "key-3", "value-3" },
};
整齐吧?
如果它更像 JSON,我会更喜欢它。但无论如何它都是非常方便的功能。
您可以为 2.0 运行时的任何事件定位该代码!