让我们直接开始吧:
旧代码:
public interface IFoo {}
public class Foo : IFoo {}
...
public static IFoo Bar() { return new Foo(); }
新代码:
public static Foo Bar() { return new Foo(); }
显然这里应该没有问题,你在旧返回类型上所做的一切,你仍然可以在新返回类型上做,任何is
, as
或者演员应该表现得和以前一样......
那么我是否破坏了二进制兼容性,或者我可以将其作为次要版本发布而不打扰用户吗?
这会破坏二进制兼容性,但不会破坏(大多数)编译时兼容性问题,因此通常很容易迁移。
请注意,如果客户端代码从该方法构造委托,它甚至可能是编译时中断。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)