2012-12-28 103 views
1

只是兩個快速問題Linq表達式轉換

1.下面的語句叫什麼?

Func<usersDto, bool> predicate 

2.與下面有什麼不同?

Expression<Func<usersDto, bool>> 

3.How做我轉換Func<type1,bool>Func<type2,bool>。好像先進的東西我

GetUsers(Func<UserDto,bool> predicate) 
{  
    return EfContext.Users.Where (convert above predicate to be passed here) 
         .Cast<>();  
} 
+0

問題可能已被回答。 [http://stackoverflow.com/questions/793571/why-would-you-use-expressionfunct-rather-than-funct][1] [1]:HTTP:// stackoverflow.com/questions/793571/why-would-you-use-expressionfunct-rather-than-funct – mdcuesta

+5

第一個被稱爲謂詞。第二個沒有名字,但我會稱之爲Al。 – SWeko

+0

@mdcuesta#2從您的鏈接回答,#1和#3仍然打開 – Deeptechtons

回答

3

一個Func<T, TResult>是一個內置的委託,它需要一個類型爲T參數,返回類型爲TResult的值。在您的問題中,predicate是代表需要usersDto的實例並返回bool

一種Expression<Func<T, TResult>>未編譯Func<T, TResult>,它可以被分析,或者填充到另一表達的部分。

Q3:參見my answer for this question