【发布时间】:2013-01-29 17:21:51
【问题描述】:
让我们直接开始吧:
旧代码:
public interface IFoo {}
public class Foo : IFoo {}
...
public static IFoo Bar() { return new Foo(); }
新代码:
public static Foo Bar() { return new Foo(); }
显然这里应该没有问题,你在旧返回类型上所做的一切,你仍然可以在新返回类型上做,任何is、as 或强制转换都应该和以前一样......
那么我是否破坏了二进制兼容性,或者我可以将其作为次要版本发布而不打扰用户?
【问题讨论】:
标签: c# inheritance binary-compatibility