すぐに行きましょう:
古いコード:
public interface IFoo {}
public class Foo : IFoo {}
...
public static IFoo Bar() { return new Foo(); }
新しいコード:
public static Foo Bar() { return new Foo(); }
明らかに、ここで問題はないはずです。古い戻り値の型で行っていたすべてのことは、新しい戻り値の型で引き続き行うことができます。 any is
、as
またはキャストは以前と同じように動作する必要があります...
バイナリ互換性を壊したのでしょうか、それともユーザーに迷惑をかけずにマイナー バージョンとしてリリースすることはできますか?