2010-07-22 2 views
0
public void aMethod<T>(Expression<Func<T, object>> lambda) 
{ 
    ...... 
} 

aMethod<User>(x=> x.UserId) 

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

Я хочу лямбда-выражение х => x.UserId

Но в пути, я получаю х => Convert (x.UserId) Таким образом, следующие операции не могут, мне нужно убедиться, что мое выражение типа Expression <Func <T, object>> оно не определяется как Expression <Func <T, int>>

есть ли способ я т?

ответ

0
public void aMethod<T,TMember>(Expression<Func<T, TMember>> lambda) 
{ 
    ...... 
} 

aMethod<User>(x=> x.UserId) 

объект ссылочный тип. int тип значения. , если вы получаете int как объект, он должен быть упакован :-)

+0

Как написать? В теле метода в – Dreampuf

+0

его трудно, если вы пишете только частично английские предложения .... так, вы хотите знать, что должно быть в теле метода? то, пожалуйста, объясните, что он должен делать ... – cRichter

+0

= =! ... Потому что у меня много кода на основе aMethod (xxxx), чтобы писать, если мы хотим изменить технологию, это будет стоить много времени. Так нет другого пути? – Dreampuf

Смежные вопросы