在.Net中使用扩展方法的最佳做法是什么?



Answers

你可能想看一下http://www.codeplex.com/nxlhttp://www.codeplex.com/umbrella这两个扩展方法库。 我个人没有看过源代码,但我敢肯定,那里的家伙将能够给你一些好的指针。

Question

我曾经看到过这些东西被用到了每一个方面,并被指责用错了方式(尽管在那种情况下,我是用这种方式来证明一个观点的 )。

那么,您认为采用扩展方法的最佳做法是什么?

开发团队是否应该创建一个扩展方法库并将其部署到各个项目中?

是否应该有一个开源项目形式的通用扩展方法集合?

更新:已决定创建一个组织广泛的扩展方法库




Objective-C语言自20世纪90年代初以来就有了“类别” 这些与.NET扩展方法基本相同。 在寻找最佳实践时,您可能想看看Objective-C(Cocoa和NeXT)开发人员在他们周围提出了哪些经验法则。

Brent Simmons (NetNewsWire RSS阅读器的作者,Mac OS X和iPhone)今天刚刚发布了他关于类别使用的新样式规则,围绕该职位的Cocoa社区进行了一些讨论




当我第一次发现扩展时,我真的滥用和滥用了它们。

在很大程度上,我已经开始摆脱使用任何扩展方法的原因有很多。

我停止使用它们的一些原因在Scott上面的博客链接中有记载,例如“在扩展你不拥有的类型之前先考虑一下”。 如果您无法控制要扩展的类型的源,那么如果源类型有一些添加/更改(例如,将项目移动到更新的.NET版本),则可能会在将来遇到问题/冲突。 如果较新的.NET版本包含与扩展名同名的类型的方法,则会有人被破坏。

我停止使用扩展方法的主要原因是,你不能通过阅读代码的方法来快速判断方法的来源以及谁拥有它。

当读完代码时,您无法判断方法是扩展还是只是一种标准的.NET API方法。

智能菜单真的很麻烦。




Links



Tags

.net .net