Ошибка:IEnumerable <IAppointment> вызывает 11 ошибок в классе Appointments.cs
'Calendar.Appointments' does not implement interface member 'System.Collections.Generic.ICollection.CopyTo(Calendar.IAppointment[], int)'
также же для добавления, ясно, граф, IsReanOnly, Удалить, IndexOf и т.д. ...
Определение является:
- Его следует называть «Назначения», и он должен иметь пустой конструктор.
- Он должен реализовать интерфейс
IAppointments
.
Интерфейс IAppointments
выглядит следующим образом:
public interface IAppointments : IList<IAppointment>
{
bool Load();
bool Save();
IEnumerable<IAppointment> GetAppointmentsOnDate(DateTime date);
}
Интерфейс IAppointment
выглядит следующим образом:
public interface IAppointment
{
DateTime Start { get; }
int Length { get; }
string DisplayableDescription { get; }
bool OccursOnDate(DateTime date);
}
Поскольку класс, который реализует IAppointments
должны также реализовывать IList<IAppointment>
(из определения интерфейс выше), вы можете подумать о внедрении класса Appointments
в качестве подкласса класса, который реализует nts IList<IAppointment>
- например, List<IAppointment>
.
я писал:
public class Appointments : IAppointments
{
List<IAppointment> list = null;
public bool Load()
{
bool flag = false;
GetEnumerableList(list);
return flag;
}
public bool Save()
{
bool flag = false;
return flag;
}
public IEnumerable<IAppointment> GetAppointmentsOnDate(DateTime day)
{
List<IAppointment> day_list = new List<IAppointment>();
foreach (var item in list)
{
if (item.Start == day) day_list.Add(item);
}
return day_list;
}
public List<IAppointment>
GetEnumerableList(IEnumerable<IAppointment> Enumerable)
{
foreach (var item in Enumerable)
{
list.Add(item);
}
return list;
}
и
public class Appointment : IEnumerable<IAppointment>, IAppointment
{
public DateTime Start { get; set; }
public int Length { get; set; }
public string DisplayableDescription { get; set; }
public bool OccursOnDate(DateTime date)
{
return false;
}
IEnumerator<IAppointment> IEnumerable<IAppointment>.GetEnumerator()
{
throw new NotImplementedException();
}
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
throw new NotImplementedException();
}
}
но не повезло, и я не путаюсь. Пожалуйста, помогите мне, как я буду использовать IEnumerated<IAppointment>
в Appoinments
или Appointment
и наследовать его? Я считаю, что я не внедряю и не наследую правильно IAppointment
и IAppointments
с моими Appointment
и Appointments
.
Из-за внешнего вида я не думаю, что вам нужно наследовать от 'IList' или 'IEnumerable ' для 'IAppointments' и' Appointment' соответственно. В противном случае проясните свои требования. –
bittusarkar
Спасибо, бскаркар! Я оставляю открытый класс Назначение: IAppointment и открытый класс. Назначения: IAppointments, не наследуя IEnumerable, но я все еще получаю ошибки, которые я упоминаю в своем сообщении. –
Konstantinos
@ Konstantinos Обычно [минимальный пример кода] (http://stackoverflow.com/help/mcve), необходимый для отображения проблемы, должен содержаться в самом вопросе. Любые ссылки на полный код, содержащийся в другом месте, могут считаться полезными, но они по-прежнему являются второстепенными и служат лишь для предоставления дополнительного контекста. Поэтому, если вы что-то изменили и все еще не сработали, либо отредактируйте свой вопрос (http://stackoverflow.com/posts/29331231/edit), либо, потратив некоторое время на поиск и оценку, опубликуйте новый, если проблема принципиально другая. –