Как сделать универсальную функцию, которая возвращает int или date или string - PullRequest
1 голос
/ 14 января 2011

Мне нужно реализовать функцию, которая возвращает Expression<Func<MyObject, T>>, где T может быть целым числом, строкой или датой-временем. Звонящий не будет знать тип Т. Чего я хочу добиться, так это функции, которая создает предикат, который можно использовать в функции Linq OrderBy. Должно быть что-то вроде:

class FilterCreator {
   ...
   Expression<Func<MyObject, T>> getOrderExpression()
   {
   ...
   }
}

class Consumer{
   void mymethod()
   {
      var orderedList = MyList.OrderBy(filterCreator.getOrderExpression());
   }
}

1 Ответ

1 голос
/ 14 января 2011

Дженерики не работают таким образом. Вам придется либо сообщить вызывающему абоненту тип T, либо заменить T на Object.

...