我已经在Stack Overflow上阅读了一些已经转换为C#2.0到C#3的人,但它真的值得吗?
在进入维护阶段之前,我有一个75%的项目.我问自己是否值得切换到C#3.0?
该项目现在将具有Web界面,因此在进入维护阶段之前,我们必须开发Web部件(所有这些都是为了Windows窗体的内部目的而完成的).大多数部件将被重新使用(后端).大多数人都说它过去不值得,因为它已经达到了75%......但现在你还认为它不值得吗?
最后,由于我们将继续使用Web界面进行项目,因此新的一年将更新为3.5.感谢大家的所有投入.
澄清
C#3.5不存在.有C#1.0,C#2.0和C#3.0.
然后是.NET 1.0,.NET 1.1,.NET 2.0,.NET 3.0和.NET 3.5.
我们不应该混淆两者.
C#3.0 vs C#2.0
现在,C#3.0值得一提吗?我会说,由于存在Extension方法和Lambda表达式,答案是肯定的.仅这两个特性使得更容易阅读和更快地编写代码.将其添加到自动实现的属性,LINQ和部分方法,C#3.0显示自己是一个有利的举措.
但是,移动现有项目并不一定有益.在决定迁移现有工作之前,你必须权衡利弊,特别是在引入新的错误和不稳定方面.对于新项目,我会说从C#3.0开始.
不,我不建议.除非有特殊原因,否则我建议仅在新项目上开始3.5.由于您的代码已经编写(或至少75%),因此只需重新编译就不会从3.5获益.
如果您将来需要迁移到3.5,则可以轻松完成.当然,您将拥有2.0样式的代码,但已完成的工作已完成.
保守,除非你需要,否则不要做某事.
C#2.0中75%的应用程序和C#3.0中的25%的应用程序并不是一个很好的维护.100%C#2.0应用程序肯定更易于维护.
当你要开始一个新项目,那么一定要切换!新的框架版本非常有趣,热切推荐切换.
在这个阶段你有什么想要的C#3.5功能吗?:)
如果它是LINQ,你可以尝试LINQBridge ..使用Studio的多目标和LINQBridge,你将能够使用C#3.0编译器的全部功能编写本地(LINQ to Objects)查询 - 但你的程序将仅需要Framework 2.0.
我认为很多这将归结为你的个人风格.恕我直言,C#3.5的最佳功能真正归结为以下几点
Lambda表达式
LINQ
扩展方法
我的OO代码仍然看起来有点面向功能.因此,我认为3.5是一个巨大的好处,它绝对值得升级.
更好的是,可以使用3.5编译器来降低目标CLR 2.0.这允许您使用新框架基于2.0安装(相对于3.0/3.5安装)进行部署.如果您愿意在程序中添加适当的类型,则可以在此方案中完成上述所有操作.