重写.NET基类库中的现有功能

Ben*_*ter 3 .net c# vb.net asp.net

关于我昨天提到的关于日志记录的另一个问题,我被介绍给TraceListeners,我以前从未遇到过,并且非常希望我有.我无法计算我不必要地编写记录器的次数,没有人曾经指出过这个或者问我为什么不使用内置工具.这让我想知道我忽略了哪些其他功能,并且由于我不知道的.NET功能而不必要地写入我的应用程序.

有没有其他人拥有.NET的功能,如果他们只知道.NET已经内置了支持它的方法,那么它们会完全改变他们编写应用程序或应用程序组件的方式吗?

如果其他开发人员发布了经常遇到组件或代码块的情况,如果原始开发人员只知道内置的.NET组件(例如我之前提到过的TraceListeners),那么这将是非常方便的.

这并不包括的3.5本身的增值功能,但可以,如果相关的场景.

编辑 - 根据之前的评论,我对我之前记录的语言的"隐藏功能"并不感兴趣 - 我正在寻找通过我自己(或原始开发人员)无知的经常被忽视的框架组件不必要地编写/重写了自己的组件/类/方法.

Bri*_*sio 5

yield关键字改变了我编写代码的方式.它是一个令人惊讶的小关键字,对于编写真正优秀的代码有很多影响.

Yield会使用允许您将多个操作串联起来的数据创建"不同的调用",但只能遍历列表一次.在以下示例中,使用yield,您只能创建一个列表,并遍历数据集一次.

FindAllData().Filter("keyword").Transform(MyTransform).ToList()
Run Code Online (Sandbox Code Playgroud)

yield关键字是大多数LINQ扩展构建的,它为您提供LINQ所具有的性能.