C# 将基类的返回值强制转换为继承类

C# 将基类的返回值强制转换为继承类,c#,inheritance,C#,Inheritance,我目前正在使用继承的方法。现在我有一个名为“BaseData”的基类,它被其他4个类继承,其中一个是Category 我在BaseData中有一个helper方法,它当前返回BaseData的数据类型。我可以从继承的类中调用helper方法,但我向其添加了一个cast to Category。现在我明白了,尽管类别继承自BaseData,但它们是两个完全不同的类。有没有正确的方法来做我想做的事情?或者甚至有可能吗 我的基类看起来像这样 public class DataBase { //

我目前正在使用继承的方法。现在我有一个名为“BaseData”的基类,它被其他4个类继承,其中一个是Category

我在BaseData中有一个helper方法,它当前返回BaseData的数据类型。我可以从继承的类中调用helper方法,但我向其添加了一个cast to 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方法。除了返回类型外,每个都完全相同

我建议你仔细阅读多态性和遗传。您尝试执行的操作可能取决于您的继承结构,不幸的是,您的代码几乎没有提供有关这些类如何绑定在一起的信息

我的建议是解决你的即时通讯问题,也许用一个包装器。如果Condition将数据库作为参数,并设置所有必要的值,则可以执行以下操作:

public static Condition GetCondition()
{

    return new Condition(BindDataToInstance(ConditionDal.GetCondition(conditionId)));

}

你能澄清你的问题吗?比如,通过发布一些代码?听起来你不需要添加演员阵容。你还没有真正说出你想做什么,所以不可能回答是否有正确/可能的方法。分享代码,这将非常有助于我们理解你的目标。你还可以提出一个非常具体的问题,比如:“我不能让类iLoveCats从iLoveDogs继承,但我可以让它从iHateDogs工作”为什么?或者我根本不能让猫和狗说话?等等。你的问题很难回答,因为这就像我做了两个动物,一个有两条腿,另一个没有。它们是如何工作的?用泛型类来代替继承怎么样?我来看看泛型类。感谢您的指导,您提供的代码就是我目前使用的代码。但我在每个派生类中都有相同的代码块。我会继续读下去。谢谢