【发布时间】:2011-10-06 02:50:04
【问题描述】:
我有两个类,MyClassA 和 MyClassB。 MyClassB 继承自 MyClassA。我写了一个带有以下签名的方法
public void DoSomething(MyGeneric<MyClassA> obj);
我还有以下事件处理程序。
public void MyEventHandler(Object source, EventArgs e)
{
//source is of type MyGeneric<MyClassB>
DoSomething((MyGeneric<MyClassA>)obj);
}
我知道MyGeneric<MyClassA> 与MyGeneric<MyClassB> 不属于同一类型,但由于 MyClassB 是 MyClassA 的子类,是否还有办法使这项工作发挥作用?
作为参考,确切的错误信息:
无法转换类型的对象 'MSUA.GraphViewer.GraphControls.TreeNode
1[MSUA.GraphViewer.GraphControls.MaterialConfigControl]' to type 'MSUA.GraphViewer.GraphControls.TreeNode1[MSUA.GraphViewer.PopulatableControl]'。
【问题讨论】:
标签: c# generics type-conversion