使用扩展方法,我们可以轻松地将方法添加到任何类型。显然,这在.net的未来版本中开启了扩展方法无法再被调用的可能性(例如,类型现在包括与扩展方法具有相同签名的方法)。
这应该是一个问题吗?
如果是这样,我应该如何处理这个并设计我的扩展方法,以便在发生这种情况时尽量减少代码更改?
答案 0 :(得分:6)
如果将来框架发生如此大的变化,将始终存在兼容性问题。如果添加了一个与扩展方法同名的新框架方法,那么很可能它们具有相同或至少非常相似的功能,并且无论如何都需要进行重构。
我认为扩展方法的力量太大而不能仅仅因为这种风险而忽视。
答案 1 :(得分:0)
使用永远不会在框架中使用的模糊方法名称。
编辑 - 或许模糊不是最合适的词,请替换为有意义但不太常见的词汇
尝试避免签名冲突实际上是避免代码返工麻烦的唯一策略(假设需要保留扩展方法的功能而不是简单地转换为框架的方法定义)。
答案 2 :(得分:0)
我担心你唯一能做的就是为你的扩展方法提供足够多的名字,这样你百分百肯定你永远不会有冲突。
不是在谈论将猫的名字添加到方法的名称,只是尝试更有创意:)