扩展方法向前兼容

时间:2011-07-19 12:28:07

标签: c# extension-methods future-proof

使用扩展方法,我们可以轻松地将方法添加到任何类型。显然,这在.net的未来版本中开启了扩展方法无法再被调用的可能性(例如,类型现在包括与扩展方法具有相同签名的方法)。

这应该是一个问题吗?

如果是这样,我应该如何处理这个并设计我的扩展方法,以便在发生这种情况时尽量减少代码更改?

3 个答案:

答案 0 :(得分:6)

如果将来框架发生如此大的变化,将始终存在兼容性问题。如果添加了一个与扩展方法同名的新框架方法,那么很可能它们具有相同或至少非常相似的功能,并且无论如何都需要进行重构。

我认为扩展方法的力量太大而不能仅仅因为这种风险而忽视。

答案 1 :(得分:0)

使用永远不会在框架中使用的模糊方法名称。

编辑 - 或许模糊不是最合适的词,请替换为有意义但不太常见的词汇

尝试避免签名冲突实际上是避免代码返工麻烦的唯一策略(假设需要保留扩展方法的功能而不是简单地转换为框架的方法定义)。

答案 2 :(得分:0)

我担心你唯一能做的就是为你的扩展方法提供足够多的名字,这样你百分百肯定你永远不会有冲突。

不是在谈论将猫的名字添加到方法的名称,只是尝试更有创意:)