给出以下两个接口:
public interface IFoo{}
public interface IBar
{
IFoo Foo { get; }
}
以下泛型类实现IBar
接口。
public class Implementation<T> : IBar where T : IFoo
{
public T Foo { get; }
IFoo IBar.Foo => Foo;
}
为什么IFoo IBar.Foo => Foo;
甚至是必要的,是否有更优雅的解决方案?
当然,我可以将Foo
类的属性Implementation
更改为IFoo
以删除泛型类型。但是在我的应用程序中,我有其他继承自Implementation
类的类。这些派生类定义了泛型T : IFoo
参数的特定类型。例如:
public class Child : Implementation<FooImplementation>
{
}
public class FooImplementation : IFoo { }