這個靈感來自我的語言大師同事,他似乎無法找到對他們的好用,經過我自己的幾次蹩腳嘗試後,我不得不同意。
現在我知道,一旦你有一些很好的實際原因,這些概念往往會更容易流動。
目前似乎唯一的目的是允許你寫一個Linq提供者?
是嗎?這還有其他好處嗎?
表達式樹非常強大,因為它們可以讓您像數據一樣對待代碼 。用戶習慣於構建數據,保存數據並稍後再返回。
表達式樹允許您使用代碼執行相同的操作。例如,您可以獲取用戶的輸入(複選框,數字範圍等)並將其轉換為表達式樹。然後可以執行該表達式樹,或將其存儲以供以後使用。很酷。
考慮報告的實際用途,例如構建和保存數據過濾器和數據映射。另一個實際用途是根據用戶定義的規則支持應用程序中的自定義工作流程。
這裡有一些關於序列化表達式樹( http://code.msdn.microsoft.com/exprserialization )的MSDN代碼,它應該讓想法流動起來。