这是我正在尝试做的事情:
public interface Ibar { voID bar();}public interface IFoo: Ibar { voID Foo();}public class FooImpl: IFoo { voID IFoo.Foo() { /* works as expected */ } //voID IFoo.bar() { /* i'd like to do this,but it doesn't compile */ } //so I'm forced to use this instead: voID Ibar.bar() { /* this would compile */ }}
我的问题是,调用bar()是不方便的:
IFoo myFoo = new FooImpl();//myFoo.bar(); /* doesn't compile */((Ibar)myFoo).bar(); /* works,but it's not necessarily obvIoUs that FooImpl is also an Ibar */
那么…有没有办法在我的类中声明IFoo.bar(){…},除了基本上将两个接口合并为一个?
如果没有,为什么?
解决方法 可以在接口中使用new关键字来显式隐藏它扩展的接口中声明的成员:public interface Ibar{ voID bar();}public interface IFoo:Ibar{ voID Foo(); new voID bar();}public class Class1 : IFoo{ voID bar(){} voID IFoo.Foo(){} voID IFoo.bar(){} voID Ibar.bar(){}}总结
以上是内存溢出为你收集整理的.NET C#在父接口中显式实现祖父母的接口方法全部内容,希望文章能够帮你解决.NET C#在父接口中显式实现祖父母的接口方法所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)