【发布时间】:2011-05-09 11:37:14
【问题描述】:
我有如下定义的类
public abstract class AbstractDType
{
protected abstract string Num1 { get; set; }
protected abstract string Num2 { get; set; }
}
public class AD1 : AbstractDType
{
public string Num1 { get; set; }
public string Num2 { get; set; }
public string Num3 { get; set; }
}
public class AD2 : AbstractDType
{
public string Num1 { get; set; }
public string Num2 { get; set; }
public string Num3 { get; set; }
}
public abstract class DTypeStrategy
{
protected virtual List<AbstractDType> GetData()
{
return new List<AD1>();
}
}
我想在 GetData() 方法中返回一个 PD1(具体类型)的列表。但是上面的代码抛出了一个转换错误。 List<AbstractDType> 无法转换为 List<PD1>。如何修复此错误,以便可以在 GetData 方法中返回具体。
还有其他从 DTypeStrategy 继承的派生类将实现 GetData(),如下所示:(我假设我也会在这里得到相同的转换错误)
public class MyDraw : DTypeStrategy
{
public override List<AbstractDType> GetData()
{
return new List <AD2>();
}
}
【问题讨论】:
标签: c#