@ Райан Я должен был заменить 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

Я считаю, что этот код работает нормально, но он становится очень неприятным, когда у меня есть несколько свойств, которые требуют одинакового поведения.

Есть ли другие способы реализовать это поведение? Дженерики или нет?

Ответы на вопрос(7)

Ваш ответ на вопрос