Как построить универсальный параметр типа - PullRequest
1 голос
/ 22 ноября 2010

У меня есть вопрос. Как я могу построить параметр общего типа? Я пытаюсь построить дерево выражений, и у меня есть следующая строка для построения:

var expression = Expression
                .Lambda<Func<T, bool>>(
                    operation,
                    new ParameterExpression[] {parameter});

Таким образом, ожидается, что я указываю параметр типа для T в .Lambda>, но параметр типа T неизвестен до времени выполнения.

Пожалуйста, помогите. Спасибо

1 Ответ

3 голосов
/ 22 ноября 2010

Ну, вы могли бы написать это в общем методе:

public Expression<Func<T,bool>> BuildExpression<T>(...)
{
    // Whatever you need to do
    var expression = Expression
            .Lambda<Func<T, bool>>(
                operation,
                new ParameterExpression[] {parameter});
}

... а затем вызвать этот метод через отражение. В качестве альтернативы:

Не зная ничего о ваших требованиях, очень сложно дать какой-либо совет, какой из них будет наиболее подходящим. Пожалуйста, отредактируйте свой вопрос, чтобы дать более подробную информацию.

...