@ Райан Я должен был заменить T базовым классом ExistingEmployee и NewEmployee
тся ли приведенный ниже код единственным способом реализации ковариантных типов возвращаемых данных?
public abstract class BaseApplication<T> {
public T Employee{ get; set; }
}
public class Application : BaseApplication<ExistingEmployee> {}
public class NewApplication : BaseApplication<NewEmployee> {}
Я хочу иметь возможность создать приложение или NewApplication и заставить его возвращать соответствующий тип Employee из свойства Employee.
var app = new Application();
var employee = app.Employee; // this should be of type ExistingEmployee
Я считаю, что этот код работает нормально, но он становится очень неприятным, когда у меня есть несколько свойств, которые требуют одинакового поведения.
Есть ли другие способы реализовать это поведение? Дженерики или нет?