写点什么

.NET 4.5 对 Base Class Library 做出改善

  • 2012-07-04
  • 本文字数:1193 字

    阅读完需:约 4 分钟

Base Class Library 是.NET 开发平台的核心。不管你使用了何种配置或者前端技术,都会在应用程序中找到使用 BCL 的地方。以下是期望在.NET 4.5 中做出改善的地方:

System.IO

对于耗费大量资源的操作,Stream、TextReader 和 TextWriter 类都拥有了新的 async 方法。这里的消耗我们指的是“可能会在一次操作中做大量工作”。而像 TextReader.Peek 之类的方法不会获得 async 版本的方法。背后的原因在于,坦率地说,async 操作并不会节省资源。它们需要分配 Task 对象,可能还需要做上下文切换,处理缓存可能失效的情况,因此总体上不适合用于严格的循环中。 Immo Landwerth 接着说到,

一般的指导原则是: 让你的异步操作尽可能地厚重。例如,如果你想要使用 BinaryReader 从流中读取 1000 个 Int32 的数据,最好运行并等待一个任务同步地读取所有 1000 条数据,而不是分别运行并等待 1000 个任务,每个任务都只读取一条 Int32 数据。

说到 BinaryReader,你现在可以告诉它不要自动关闭它所包装的流。这个特性对 BinaryWriter、StreamReader 和 StreamWriter 同样适用。

Immo 还提到,.NET BCL 现在使用了开源程序库zlib 来实现System.IO.Compression 命名空间。这包括对DeflateStream 性能的修正,以及新的 ZipArchive 类。这并非是 zlib 第一次被微软使用,它还用于 Windows 的 Zip 文件支持和 WPF 中。

System.Collection

我们已经谈到了.NET 4.5 中的只读集合,到现在为止其中并没有显著改变。值得注意的一种被遗漏的特性是IReadOnlySet,它被用于匹配HashSet 和ISet。

抽象类Comparer 使用了一些函数式编程的优势。你不能显式地实现这个类,而是需要调用 Comparer.Create ,在一个比较函数中传递它,然而让它来负责其他处理。

很少有人知道 ArraySegment 结构,它也获得了重大改进,第一次真正实现了让它变得有用的接口,像 IEnumerable 和 IList。然而,它只对裸数组(naked arrays)有效,大多数开发者更喜欢使用更高级别的集合类,像 List。

杂项

AssemblyMetadataAttribute 现在是对集合赋予任意键值对的标准方式。你可能不清楚为什么会使用它,而不是定义自定义的属性,但是如果你想的话就可以那样用。

Console 现在让你知道输入、输出或者错误流是否被重定向。你可能最多是使用它来禁用依赖于设置鼠标位置或者改变屏幕颜色的特性。如果你需要支持额外的字符,还可以把编码变更为 Encoding.Unicode。

WeakReference 提供了替换 WeakReference 的类型安全的方法。为了消除长期存在的竞争条件,WeakReference 不再提供单独的 IsAlive 和 TryGetTarget 方法。取而代之的是,它们被组合到 TryGetTarget 之中。

不幸的是,看起来我们不会有相匹配的 WeakDelegate,如果存在的话,会让实现弱事件更容易。

Regex 现在支持 Timeout 属性。这是很重要的工具,当允许用户注入任意的正则表达式的时候,可以避免拒绝服务攻击。

查看英文原文:.NET 4.5 Improves to the Base Class Library

2012-07-04 03:382130
用户头像

发布了 340 篇内容, 共 139.9 次阅读, 收获喜欢 13 次。

关注

评论

发布
暂无评论
发现更多内容

行云绽放签约湾区协同创新计划,共创数字新篇章

行云管家

云计算 数字化 湾区

面试官:Session和JWT有什么区别?

王磊

Java 面试题

连接世界,选择国外主机服务,让你的网站跨越地域限制

一只扑棱蛾子

国外主机 国外主机服务

零训练创建大模型的新方法:进化算法在模型融合中的应用

算AI

人工智能 神经网络 深度学习 算法

IT外包公司可以帮企业做哪些网络优化?

Ogcloud

IT IT外包 IT外包公司 IT外包服务 IT外包服务商

喜报!天翼云论文被权威国际学术会议IEEE/ACM CCGrid收录

编程猫

UniApp 应用发布到苹果商店指南

汽车智能化多模态交互

之家技术

大模型 AIGC 企业号 4 月 PK 榜

IT外包行业未来发展趋势

Ogcloud

IT外包 IT外包公司 IT外包服务 IT外包企业 IT驻场外包

让 AI 帮你写代码,开发提效神器来了

阿里云云效

阿里云 AI 云原生

通义灵码走进武汉大学:让 AI 编码助手激活大学生的创造力

阿里云云效

阿里云 AI 云原生 通义灵码

日志服务 HarmonyOS NEXT 日志采集最佳实践

阿里巴巴云原生

阿里云 云原生 HarmonyOS 日志服务 sls

大模型驱动的新范式选车引擎

之家技术

大模型 AIGC 企业号 4 月 PK 榜

Penpad Season 2 质押突破350ETH,参与可获Scroll生态空投

西柚子

IT外包服务:企业数据资产化加速利器

Ogcloud

IT外包 IT外包公司 IT外包服务 IT外包企业

室内全彩LED显示屏的构成与技术

Dylan

技术 LED显示屏 全彩LED显示屏 led显示屏厂家 户内led显示屏

汽车之家人的“灵创”AI应用平台及编程助手AutoCode

之家技术

大模型 AIGC 企业号 4 月 PK 榜

智能座机方案建设与实践

之家技术

人工智能 企业号 4 月 PK 榜

AI广告创意生产实践

之家技术

大模型 AIGC 企业号 4 月 PK 榜

【FAQ】HarmonyOS SDK 闭源开放能力 —Asset Store Kit

HarmonyOS SDK

HarmonyOS

给蚂蚁金服antv提个PR, 以为是改个错别字, 未曾想背后的原因竟如此复杂!

前夕

前端 数据可视化 bug 蚂蚁金服 antv-g2

阿里云可观测 2024 年 3 月产品动态

阿里巴巴云原生

阿里云 云原生 可观测

美股上市辅导合伙人苏凌丘调研万达影业 欲打造VR眼镜沉浸式影院平台

科技热闻

一定要避坑:关于微信H5分享,温馨提示你不要再踩坑了!!!

Immerse

Vue 分享 H5

NineData云原生智能数据管理平台新功能发布|2024年3月版

NineData

NineData 研发流程 数据库DevOps 企业级数据库 敏感数据管理

适合新锐机构的教务管理系统——“校猩猩”正式上线

科技热闻

我们是如何测试人工智能的(三)数据构造与性能测试篇

测试人

人工智能 软件测试

快马科技丨中小型经销商数字化怎么玩?

科技热闻

持续兑现承诺,英特尔锐炫Day 0驱动支持网易武侠大作《射雕》

E科讯

.NET 4.5对Base Class Library做出改善_语言 & 开发_Jonathan Allen_InfoQ精选文章