我正在尝试通过工厂模式实现这种结构
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'
有关如何解决该问题的任何建议? 预先感谢
很抱歉,您看到的简短文字,我希望问题很清楚。
编辑 抱歉,刚才更正的代码有误