我以这种方式创建类“任务”的列表。无法从基类的列表<T>中访问子类的方法。
List<Task> toDoList = new List<Task>;
任务是一个基类,并设计它是这样:
public class Task : IDetail
{
string _taskName; //Task title.
string _taskDescription; //Task description.
public Task(string tn, string td) //Constructor.
{
_taskName = tn;
_taskDescription = td;
}
// Method set or return _taskName.
public string taskName
{
get
{
return _taskName;
}
set
{
_taskName = value;
}
}
//Method to set or return _taskDescription.
public string taskDescription
{
get
{
return _taskDescription;
}
set
{
_taskDescription = value;
}
}
public virtual void editList()
{
Creator editCreator = new Creator();
editCreator.Show();
}
}
我一直在试图待办事项是调用方法继承的类中存在像一个一个我候“注意“并且已经将其定义如下。
class Note : Task, IDetail
{
string _noteDescription;
public Note(string nd, string tn, string td) //Constructor.
: base(tn, td)
{
_noteDescription = nd;
}
//Method to set or return _noteDescription.
public string noteDescription
{
get
{
return _noteDescription;
}
set
{
_noteDescription = value;
}
}
public override void editList()
{
noteBuilder editNote = new noteBuilder();
editNote.Show();
}
}
然而,当我尝试调用列表中我得到一个错误的继承任务的方法。我试图访问该方法为这样:
toDoList.ElementAt(x).noteDescription;
我的问题是如何防止错误的发生?
的错误状态
“toDoList.Task”不包含“noteDescription”,没有扩展方法等等等等
我应该算得上宣布的基类为抽象的定义?还是有什么我失踪?
很多感谢
但它'Task',而不是它的子类'Note'的名单列表。你为什么期望它允许你访问'Note'的属性?如果列表中包含的是*不是Note'的'*实例Task'的'实例? – 2012-03-30 21:52:37