.NET C#在父接口中显式实现祖父母的接口方法

.NET C#在父接口中显式实现祖父母的接口方法,第1张

概述那个头衔是满口的,不是吗?…… 这是我正在尝试做的事情: public interface IBar { void Bar();}public interface IFoo: IBar { void Foo();}public class FooImpl: IFoo { void IFoo.Foo() { /* works as expected */ } 那个头衔是满口的,不是吗?……

这是我正在尝试做的事情:

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#在父接口中显式实现祖父母的接口方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1248863.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存