C# - 如果我从.NET 2.0开始,我会想念什么?

我得到了一本名为“Pro C#2005和.NET 2.0平台,第三版由Andrew Troelsen”的书。 我想知道我是否应该购买“Pro C#2010和.NET 4平台,第五版”。因为,最新版本的.NET是4.0。如果我根据这本旧书学习C#,我是否会错过C#语言的一些关键部分?或者,我可以从本书开始,并学习其他资源的新.NET 4.0功能。 谢谢     
已邀请:
你可以从那本书开始,从其他地方学习C#4.0。这是在C#2.0之后添加的内容: C#3.0: LINQ lambda表达式 扩展方法 表达树 匿名类型 本地类型推理 自动属性 对象初始化器 集合初始化器 部分方法 C#4.0 动态成员查找 协变和逆变泛型类型参数 可选参数和命名参数 并行化框架(实际上是.NET 4的一部分,而不是C#4.0本身)     
你会错过很多。最值得注意的是,Linq。 Linq改变了惯用语C#的整个面貌,以至于我无法从旧书开始推荐。     
我想你会错过LINQ,这是一个非常值得注意的补充。如果你对其他推荐开放,我会说试试Jon Skeet的C#In Depth。它非常好地覆盖了从2.0到4.0版本(我购买了早期版本)的语言中的各种变化。     
Lambdas / LINQ非常庞大。     
C#2有泛型,它很好,但C#3和4分别有LINQ和动态类型,两者在各自的环境中都非常强大。 这就是两个名字。那里有一堆垃圾,你错过了。 如果可以,请始终针对最新版本进行开发。     
你当然可以从C#2.0开始学习基础知识。 C#4.0中有许多很棒的新功能,但其中许多都是高级的或者所谓的“语法糖”,这意味着它是一种更简洁的方式来编写你已经可以使用C#2.0做的事情。 关于您可以参考的新功能有很多不同的帖子,但没有购买完整的书籍: http://www.15seconds.com/issue/080228.htm http://code.msdn.microsoft.com/cs2010samples 我建议不要预先花钱,并查看互联网提供的内容。     
我认为你不会错过任何一件事。我有第3,第4和第3这本书的第5版和我喜欢Trolensen的风格。就个人而言,我认为2.0是正确的C#版本。从3.0开始,添加了许多功能,这些功能只不过是“语法糖”和“时间/打字储户”而且它们让初学者感到困惑,而且你必须在这里发布更多问题,比如“我是否应该使用构造函数或者对象初始化器“。 如果您是第一次学习核心语言,可以从2.0开始,这是核心语言的主要版本。就像你说的那样,你可以随时了解其他资源的新功能。     
我不建议你开始用这么老的版本学习C#。 如果你有钱购买新版本,你应该去购买。自.net 2.0以来发生了很多变化。 如果您购买一本新书,那么您现在就无法从该书中学习基本内容并从在线资源中学习新功能。     
您会错过大多数新技术。 3.0引入了WPF,WCF和WF 3.5给了我们LINQ,以及其他相关技术,如lambda表达式,扩展方法...... 4.0带来了DLR,用于动态打字。 可以在维基百科上找到新功能的完整摘要。     
LINQ并不是你想念的全部。使用LINQ添加到3.0的许多技术(主要是因为它)都有其自身的优点,因此非常值得采用最新版本。 Lambda表达式 匿名方法(可能已经2.0,此刻记不起来了) 类型推断 4.0中的动态类型 大量的新课程和改进 如果你真的不必要的话,我认为你自己可能会伤害自己2.0。毕竟,框架是免费的,在线文档也是如此。此外,在线教程比比皆是,并且您在StackOverflow上获得了丰富的编程建议资源。     
MSDN有一组有用的页面(从这里开始),它们可以准确地告诉您在定位旧版本的C#和.Net Framework时将会遗漏的内容。 记住当你定位一个C#版本时,你不仅仅是将自己与语言联系起来,而是与匹配的.Net框架捆绑在一起 - 2008年会有一大堆新内容,然后在2010年再次出现,你会错过去.Net 2.0 。     
自2.0以来,您想要了解的主要内容包括: Linq(一种强大的编译器检查查询语言,用于列表/集处理和ORM框架的接口)。 匿名类型和委托(lambda表达式)。需要存储一些你从Linq表达式获得的数据字段的列表,但是不需要/想要定义一个全新的类型来存储它们吗?你不必再了。类似地,如果您需要对列表的每个元素执行某些操作,或者指定一些操作来返回结果,但又不想定义命名方法,则不必这样做。 C#允许您指定“匿名”类型和委托,这些类型和委托在使用它们时定义,并且只能通过包含委托或数据引用的变量访问。 WPF(下一代UI开发,它是一个基于XML的表示布局定义,将永远取代WinForms和ASP.NET) WCF - 下一代Web服务类,支持加密等内置安全功能。 微软实体框架 - 微软采用像NHibernate这样的ORM框架 动态类型 - C#4.0允许通过将类型或参数定义为
dynamic
来放宽类型限制。这允许.NET更加无缝地与使用“duck-typed”语言编写的程序集或本机API进行交互(其中类型始终是动态的,从您尝试对实例进行推断) 更好的协方​​差/逆变支持 - .NET 4.0允许您指定类型的集合可以被视为它们是派生类型或祖先类型的集合。     
.Net的版本都是主要相似的,但是从2.0开始,你唯一可以收集的就是获得语言中某些变化来自的历史。这更像是一种经验。如果您还没有接受过C#培训,最好从最近开始。语言的基本原理仍然是一样的。您还将学习完成常见任务的最新技术,而不是学习过时的方法,然后不得不重新学习它,并尝试先了解差异及其存在的原因。 从最新的东西开始。不要从过时的资源中学习,然后尝试用无关的信息填补空白。     
编程技术变化如此之快,为什么你会花时间阅读这么旧的书呢?我会得到最新的。     
除了前面提到的Linq / lambdas等,后面的书还将涵盖WPF这样的技术,它几乎取代了用于桌面开发的winforms,而WCF现在是常用的通信方法,所以我试着去买一本书。 。     

要回复问题请先登录注册