我有一个非常简单的问题,但我以前没有遇到过这个问题。
看看这段代码:
interface IFoo
{
IBar MyBar { get; }
}
interface IBar
{
String Test { get; }
}
class Foo : IFoo
{
public Bar MyBar { get; set; }
}
class Bar : IBar
{
public String Test { get; set; }
}
问题是 Foo 没有实现 IFoo,因为它返回 Bar 而不是 IBar。但我没有看到问题,因为 Bar 正在实施 IBar。我错过了什么吗?
我希望我的应用程序使用类 Foo 但将 IFoo 暴露给解决方案的其他部分。
这是一种解决方法,但它似乎是一个丑陋的解决方案:
class Foo : IFoo
{
public Bar MyBar { get; set; }
IBar IFoo.MyBar {
get { return this.MyBar; }
}
}
这是要走的路,还是更好的方法?