将对象转换为通用接口

Tsa*_*ahi -1 .net c# casting c#-4.0

我有以下课程:

class MyObject { }
class MyObject2 { }

interface Parent<T>
{
    void DoSomething(T myObj);
}

class Child1 : Parent<MyObject1>
{
    public void DoSomething(MyObject1 myObj) { }
}

class Child2 : Parent<MyObject2>
{
    public void DoSomething(MyObject2 myObj) { }
}
Run Code Online (Sandbox Code Playgroud)

我想创建一个返回父项的工厂方法,但是我得到以下转换错误

无法将类型'Child1'隐式转换为'Parent'.存在显式转换(您是否错过了演员?)

static Parent<object> Factory()
    {
        return new Child1();
    }
Run Code Online (Sandbox Code Playgroud)

这有什么解决方法吗?

Tim*_* S. 5

你要求的是不可能的.将a引用为a Parent<MyObject1>是没有意义的Parent<object>.如果您有string,则无法将其传递给签名为的方法DoSomething(MyObject1).你需要找到另一种方法来做你想做的事情.