实现具有约束的接口的泛型类

时间:2018-04-06 07:23:03

标签: c# generics interface

给出以下两个接口:

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 { }

0 个答案:

没有答案