使用扩展方法,我们可以轻松地将方法添加到任何类型。很显然,这将在未来版本的.net中打开扩展方法不能再被调用的可能性(例如,类型现在包括一个与扩展方法具有相同签名的方法)。向前兼容的扩展方法
这应该是一个问题吗?
如果是这样,我该如何处理这个问题并设计我的扩展方法,以尽量减少代码更改?
使用扩展方法,我们可以轻松地将方法添加到任何类型。很显然,这将在未来版本的.net中打开扩展方法不能再被调用的可能性(例如,类型现在包括一个与扩展方法具有相同签名的方法)。向前兼容的扩展方法
这应该是一个问题吗?
如果是这样,我该如何处理这个问题并设计我的扩展方法,以尽量减少代码更改?
如果框架在未来的变化如此之大,总是会有兼容性问题。如果添加一个新的框架方法与您的扩展方法具有相同的名称,那么它们很可能具有相同的功能,或者至少具有非常类似的功能,因此无论如何都会有重构。
我认为扩展方法的威力太大,不能仅仅因为这个风险而忽略。
我同意。使您的扩展方法尽可能清晰,明显,直接。 – hatchet
恐怕你唯一能做的就是为你的扩展方法提供足够的名字,这样你100%肯定你永远不会有冲突。
不谈论加入你的猫方法名的名字,只是尝试更多的创造性:)
如果您担心这一点,一种解决方案不会使用扩展方法。 ';)' 您可以从您正在扩展的类继承并添加该方法。您将收到警告,说明您隐藏稍后添加的新方法。或者你可以从静态方法中删除'this'参数修饰符。 –