.net 4.0有哪些新功能?全方面更新内容盘点

那天在公司折腾个老项目,突然发现电脑上装的还是.net 3.5,隔壁桌老王说4.0都出来大半年了,新功能多得像菜市场里的土豆。

装环境就把我折腾够呛

我兴冲冲跑去微软官网下载安装包,结果安装到一半卡死了。重启电脑再来一遍,这回勾了个“自定义安装”,把没用的组件全取消勾选,进度条才慢悠悠跑完。

翻文档看得我眼花

打开MSDN文档直接傻眼,更新清单比超市小票还长。我干脆拉了个单子重点看:

  • 动态类型:这玩意儿贼有意思,写代码不用提前声明类型了。我在控制台里试着乱改变量类型,数字变字符串再变布尔值居然没报错。
  • 并行计算:拿ThreadPool试水的时候差点把电脑搞死机,后来学乖了用*循环,处理一万条数据速度嗖嗖快。
  • MVC2模板:新建项目时看到这个选项眼前一亮,结果建出来的项目文件多得像马蜂窝,光Controller文件夹里就自动生成了五个空文件。

动手实操翻车现场

最想玩的是Lazy<T>懒加载。兴冲冲在单元测试里写了个初始化数据库连接的例子,结果Debug时死活不进断点。折腾半小时才反应过来,这破功能非要等到实际调用时才会加载数据。

还有那个代码契约,在方法前面加[ContractInvariantMethod]的时候手滑多打个字母,编译器直接飙红字骂我,错误提示写得比我高中作文还长。

加班到半夜的收获

在公司耗到十一点半才搞明白,真正能用的就三四样:

  • TPL并行库确实香,但得把任务拆得足够细
  • 动态类型适合写脚本,放到正式项目里就是埋雷
  • EF4增删改查还行,复杂查询照样卡成狗

把升级文档发给项目组时,老大瞥了眼说:“整这么热闹,你不说我还以为重写了套操作系统!” 说实话要不是客户非要新环境,真不想碰这堆半生不熟的功能,调试报错时连错误信息都长得能当手机屏保。