Gegeben die folgende generische Schnittstelle und die implementierende Klasse:
public interface IRepository<T> {
// U has to be of type T of a subtype of T
IQueryable<U> Find<U>() where U : T;
}
public class PersonRepository : IRepository<Employee> {
}
Wie kann ich die Find-Methode ohne Angabe von U aufrufen?
var repository = new EmployeeRepository();
// Can't be done
IQueryable<Employee> people = repository.Find();
// Has to be, but isn't Employee a given in this context?
IQueryable<Employee> people = repository.Find<Employee>();
// Here I'm being specific
IQueryable<Manager> managers = repository.Find<Manager>();
Mit anderen Worten, was kann getan werden, um eine Typisierung zu erhalten?
Merci !