C# .net 3.5C# Аннотация Общий метод
Я пытаюсь создать базовый класс, который имеет общий метод. Классы, которые наследуют от него, должны указывать тип (ы) метода.
Предпосылка для этого предназначена для создания классов, которые управляют фильтрацией.
Так у меня есть:
public abstract class FilterBase {
//NEED Help Declaring the Generic method for GetFilter
//public abstract IQueryable<T> GetFilter<T>(IQueryable<T> query);
}
public class ProjectFilter:FilterBase {
public IQueryable<Linq.Project> GetFilter(IQueryable<Linq.Project> query) {
//do stuff with query
return query;
}
}
public class ProjectList {
public static ProjectList GetList(ProjectFilter filter) {
var query = //....Linq code...
query = filterCriteria.GetFilter(query);
}
}
Думаю, что это что-то простое, но я не могу получить синтаксис право в FilterBase для абстрактного метода GetFilter.
EDIT
В идеале, хотелось бы сохранить только метод как общий, а не класс. Если это невозможно, то, пожалуйста, дайте мне знать ..
, который работает, мне нужно сделать общий класс? Разве я не могу сохранить общий метод? Причина, о которой я прошу, может быть несколько GetFilter для одного и того же класса, которые принимают другой IQueryable, чем «Linq.Project». –
@B Z: вы можете сделать только общий метод, но тогда он должен будет оставаться общим до вызова. Вы не можете получить из не общего класса и назначить общий тип метода, как вы пытаетесь в своем вопросе. В этом случае вызывающий абонент должен будет передать тип методу. –
@Mark - thx. Кажется, это ограничение для меня? Знаете ли вы, есть ли дополнительные объяснения? Может быть, в C# In в глубине? –