我目前正在玩继承方法。现在我有一个名为“BaseData”的基类,它被其他4个类继承,其中一个是Category。
我在BaseData中有一个辅助方法,它当前返回BaseData的数据类型。我能够从继承的类中调用helper方法,但我向它添加了一个类似的转换。现在我明白,即使Category继承自BaseData,它们也是两个完全不同的类。有没有正确的方法来做我想做的事情?或者甚至可能吗?
我的基类看起来像这样
public class DataBase
{
// Accessors and stuff
internal static DataBase BindDataToInstance(DataRow dr)
{
var condition = new DataBase()
{
ID = (string)dr["ID"],
Title = (string)dr["Title"],
Description = (string)dr["Description"]
};
return condition;
}
}
我正在考虑通过
调用方法 public class Condition : BaseData
{
public static Condition GetCondition()
{
return (Condition)BindDataToInstance(ConditionDal.GetCondition(conditionId));
}
提前致谢!
编辑:基本上,我想获取基类的实例并将其转换为派生类的实例
Spook Kruger建议的代码就是我目前正在使用的代码 - 每个类一个BindDataToInstance方法。除返回类型外,每个都完全相同。
答案 0 :(得分:0)
我建议你阅读有关多态和继承的内容。您尝试做的可能取决于您的继承结构,遗憾的是您的代码几乎没有提供有关这些类如何绑定在一起的信息。
我解决你的中间问题的建议是使用包装器。如果Condition将DataBase作为参数接受并设置所有必需的值,则可以执行此操作:
public static Condition GetCondition()
{
return new Condition(BindDataToInstance(ConditionDal.GetCondition(conditionId)));
}