【发布时间】:2015-05-18 17:42:04
【问题描述】:
我的问题最好用一个例子来解释:
public IPlotModel MyPlotModel;
public ??? CastedModel;
public Constructor()
{
MyPlotModel = new PlotModel(); //This should be interchangable with other types
//E.g.: MyPlotModel = new OtherModel();
CastedModel = (MyPlotModel.GetType()) MyPlotModel;
}
这基本上就是我想要的。 CastedModel 应该被强制转换为 MyPlotModel 的类型。
我使用 Convert.ChangeType() 取得了一些成功。我设法将 CastedModel 的类型更改为正确的类型,但我无法将 CastedModel 的值更改为 MyPlotModel。
这是我尝试过的:
Convert.ChangeType(CastedModel, MyPlotModel.GetType());
CastedModel = MyPlotModel;
但 MyPlotModel 仍然被识别为接口,即使它被初始化为 PlotModel。
提前致谢, 亚历山大。
【问题讨论】:
-
你能制作class generic吗?或者你不能改变定义吗