C#泛型如何在这种情况下逃脱检查条件

时间:2019-05-31 13:23:53

标签: c# generics polymorphism

我具有以下类/接口关系:

    public interface IFoo {}

    public class FooImpl1 : IFoo{}

    public class FooImpl2 : IFoo{}

    public interface IFooService<T>  where T : IFoo {}

    public class FooServiceImpl1 : IFooService<FooImpl1> {}

    public class FooServiceImpl2 : IFooService<FooImpl2> {}

我想做以下事情,但是不起作用:

public class FooServiceFactory
{
    public FooServiceFactory()
    {
        var fooServices = new Dictionary<string, IFooService<IFoo>>();
        fooServices["key1"] = new FooServiceImpl1();
        fooServices["key2"] = new FooServiceImpl2();            
    }
}

我尝试了一些方法,但是没有成功,现在,我不确定为什么这行不通。

0 个答案:

没有答案