tar = Expression.Label(( p1=Expression.Parameter((), p2 = Expression.Parameter((), v1=Expression.Variable((), v2 = Expression.Assign(v1, Expression.Constant( b1= b2 = ret = lbl = Expression.Label(tar, Expression.Constant( block=Expression.Block(<Func<, , >>(block, p1, p2).CompileToMethod(addMethod);
想用表達式實現public int Add(int a,int b){var c=100;return a+b+c;},結果覺發現寫了這麼多代碼,真是花費不小啊。到了最後一步CompileToMethod又被坑了,addMethod必須是靜態方法(總是失敗,反編譯發現),這是一個多麼大的限制啊~不過仔細想想其實也有它的道理,沒有上下文this。如果我是需要一個委托,干嘛費那麼大事呢?