Возможно, я все это сделаю неправильно.
У меня есть куча классов, которые происходят из класса "Модель", базового класса с кучей общих свойств и методов. Я хочу, чтобы все они реализовали набор функций:
public abstract void Create();
public abstract T Read<T>(Guid ID); //<--Focus on this one
public abstract void Update();
public abstract void Delete();
Затем я реализую его в дочернем классе, например "Назначение":
public override T Read<T>(Guid ID)
{
var appt = db.Appointments.First(a => a.AppointmentID.Equals(ID));
var appointment = new Appointment()
{
DateEnd = appt.dateEnd.GetValueOrDefault(),
Location = appt.location,
Summary = appt.summary
};
return appointment;
}
Это генерирует исключение "Невозможно неявно преобразовать тип" Назначение "в T". Если я изменю подпись метода на "public override Appointment Read (Guid ID)", тогда компилятор говорит, что я не реализовал абстрактный метод в дочернем классе.
Что мне не хватает? Может ли кто-нибудь дать мне несколько примеров кода?