對於C#中的Expression特性想必從事C#開發的同學都不會陌生,網上和園子裡都有很多的好的文章介紹。我想也沒有必要再去寫一些文章去介紹,科普或是從入門到精通之類的。
這系列的隨筆主要是就實現工作和學習過程中的一些思考、問題的解決以及自覺有趣的發現等作些分享。
借助於Expression, 我們可以寫些很優雅(至少個人覺得)的代碼。
例於開發WPF的同學們每天要接觸的ViewModel中,
OnPropertyChanged(() => Name);
要比
OnPropertyChanged("Name")
優雅。並且更多的好處是可以在編譯時檢查錯誤,尤其是在Property名字被改變後。
好了,對Expression的誇獎就不多說了。以下是我想分享的經驗:
Expression經驗之一:合並LambdaExpression
Expression經驗之二:LambdaExpression變換
Expression經驗之三:LambdaExpression作緩存key