如何从工厂传回接口类型

时间:2018-12-21 15:42:04

标签: c# interface factory-pattern

我正在尝试通过工厂模式实现这种结构

   public static class MyFactory
        {
            public static MyType<MyInterface> GetMyType(string option)
            {
                switch (option)
                {
                    case "1":
                        return new MyType1(); // <--error is here
                    case "2":
                        return new MyType2(); // <-- and here
                }
                return null;
            }

        }


    public class MyWork
    {
        public void MyMethod()
        {
            var myType = MyFactory.GetMyType("1");
            //myType.DoWork()
        }
    }

    public class MyType1 : MyType<Tiny1> { }

    public class MyType2 : MyType<Tiny2> { }

    public class Tiny1 : MyInterface { }

    public class Tiny2 : MyInterface { }

    public class MyType<T> where T : MyInterface 
    { 
       //public string DoWork(){}
    }

    public interface MyInterface {}

我正在 无法隐式转换类型 'ConsoleApp1.Program.MyType1'

'ConsoleApp1.Program.MyType'

有关如何解决该问题的任何建议? 预先感谢

很抱歉,您看到的简短文字,我希望问题很清楚。

编辑 抱歉,刚才更正的代码有误

0 个答案:

没有答案