草庐IT

FooBarAdapter

全部标签

c# - 可以转换为非继承的接口(interface)吗?

为什么不能转换一个实例:sealedclassFoo{publicvoidGo(){}}...到这个界面:interfaceIBar{voidGo();}...即使Foo具有IBar的签名?如何将Foo的实例转换为IBar?假设我无法控制Foo。 最佳答案 不,C#不支持鸭子类型。这个问题的OOP方法是使用theAdapterPattern.你会这样做:classFooBarAdapter:IBar{privatereadonlyFoofoo;publicFooBarAdapter(Foofoo){this.foo=foo;}pub