次の抽象クラスがあります。
abstract class ContactQueue
{
public abstract DateTime period {
get; set; }
public abstract String type { get; set; }
public abstract String toString();
}
このクラスのサブクラスの 1 つが次のとおりです。
class GeneralPercentageQueue : ContactQueue
{
public GeneralPercentageQueue(DateTime period)
{
this.period = period;
}
public int phone_answer_total {get; set;}
public int phone_answer_percentage_8025 { get; set; }
public int web_answer_percentage_8030 { get; set; }
public int web_answer_percentage_total { get; set; }
public int mail_answer_percentage { get; set; }
public override DateTime period { get; set; }
public override string type { get; set; }
public override string toString()
{
return period.ToString();
}
}
抽象クラスのサブクラスがいくつかあるので、それらすべてを含むことができるリストを作成しました。そのリストをループし、特定のフィールドの 1 つにアクセスしてこれを実行します。次のことを試みました。
foreach(ContactQueue cq in p.GetGeneralEmailPercentageData(start,end))
{
foreach (ContactQueue contactqueue in finalDataList)
{
if (cq.period == contactqueue.period)
{
(GeneralPercentageQueue)contactqueue.mail_answer_percentage = (GeneralPercentageQueue)cq.mail_answer_percentage;
}
}
}
ただし、オブジェクトにそのようなフィールドがないというエラーが表示されますContactQueue
では、どうやってアクセスするのですか?