-1
A
回答
3
這將做到這一點:的lambda.ToString()
var param = Expression.Parameter(typeof(int), "e");
var body = param;
var lambda = Expression.Lambda<Func<int, int>>(body, param);
輸出:
e => e
請注意,你需要給e
類型(在這種情況下,它是一個int)。
預編輯注:
你寫什麼(e => e
)實際上已經是一個表達式樹(如果定義爲Expression<T>
,這是)。但是,您可能希望使用工廠方法來構建樹。
1
e => e
。而已。
當然需要鍵入它,例如,用於整數的Expression<Func<int, int>> intTree = e => e;
,用於字符串的Expression<Func<string, string>> stringTree = e => e;
等等。
現在你已經得到了來自拉姆達樹,你可以檢查它還是要樹爲任何其他:
Console.WriteLine(intTree.Parameters[0].Name); // "e"
Console.WriteLine(intTree.CanReduce); // false
Func<int, int> intIdentityFunction = intTree.Compile();
相關問題
- 1. 正則表達式-e
- 2. 列表<E>到Stringbuffer
- 3. 將RealmResults <E>轉換爲列表<E> with copyFromRealm
- 4. Perl正則表達式散列與/ e
- 5. 蟒正則表達式匹配「E(RHF)=」
- 6. <E>
- 7. BaseButton <E>和BaseButton <E擴展BaseButton <E>>有什麼區別?
- 8. Arrays.sort列表<E>
- 9. Angular2 EXCEPTION:沒有提供者的e! (e - > e)
- 10. 爲何<T>代表藏品<E>收藏<E>?
- 11. 如何接受列表<E>或數組E []到REST端點?
- 12. <E>是什麼意思集合<E>?
- 13. 無法將節點<E>轉換成節點<E>?
- 14. Angelika Langer Enum <E extends Enum <E>>解碼
- 15. SparseMultigraph <V, E>和SparseGraph <V, E>有什麼區別?
- 16. 嫺熟類<E>成Class <E[]>
- 17. 將ArrayList <ArrayList<E>>轉換爲Java中的E [] []
- 18. 公共接口ITMark <E extends Comparable <E>>
- 19. <T擴展對象&E> VS <T extends E>
- 20. BackendLessCollection <E>不投列出<E>
- 21. Java關於<E>使用公共靜態<E> void
- 22. JSON e和JSON E
- 23. 「NaNundefined」[10] =「e」或([+ [] [[]]] + [] [[]])[++] [[]] [+ []] + [+]]] =「e」?
- 24. 在javascript中如何轉換é - > e,š - > s,? - > e,± - > a ...?
- 25. 需要轉換E在PHP到e
- 26. 爲什麼TreeSet聲明TreeSet <E>而不是TreeSet <E extends Comparable <E>>
- 27. Class PriorityQueue <E>的「public boolean add(E e)」的時間複雜度是多少?
- 28. 找到e
- 29. 編寫一個程序,它使用堆棧將表達式a b + c d e + * *轉換爲表達式樹。
- 30. AbstractList <E> - add(int index,E元素),add(e e)等的返回類型之間的區別?
您發佈已經做了代碼。恭喜,你完成了。 – Servy
我必須使用表達式樹。我知道這是生成我想要的lambda表達式。 – Zuryx
是的,但是您提供的代碼可以是一種在C#中編寫表達式樹的方法(根據上下文,相同的代碼也可以編寫委託或方法體) –