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