लागू तो मैं एक delegate
जो कुछ समारोह जो मैं वास्तव में जब मैं पहली बार delegate
वस्तु बनाने के बारे में पता नहीं है की ओर इशारा करता है। ऑब्जेक्ट बाद में कुछ फ़ंक्शन पर सेट है।अभिव्यक्ति पेड़ों और एक प्रतिनिधि
मैं भी एक अभिव्यक्ति वृक्ष बनाना चाहता हूं जो प्रतिनिधि को एक तर्क के साथ आमंत्रित करता है (इस प्रश्न के लिए तर्क 5
हो सकता है)। यह थोड़ा सा है जिसके साथ मैं संघर्ष कर रहा हूं; नीचे दिया गया कोड दिखाता है कि मैं क्या चाहता हूं लेकिन यह संकलित नहीं करता है।
Func<int, int> func = null;
Expression<Func<int>> expr =() => func(5);
यह expr
बन बनाता है::
() => Invoke(value(Test.Program+<>c__DisplayClass0).func, 5)
कौन सा लगता है
Func<int, int> func = null;
Expression expr = Expression.Invoke(func, Expression.Constant(5));
इस उदाहरण मैं कर सकता के लिए (यह व्यावहारिक के बाद से मैं रनटाइम पर अभिव्यक्ति के पेड़ का निर्माण करने की आवश्यकता है) कि delegate
func
उपयोग करने के लिए मतलब है, मैं value(Test.Program+<>c__DisplayClass0).func
बिट का उत्पादन करने की जरूरत है।
तो, मैं एक अभिव्यक्ति पेड़ जो एक प्रतिनिधि का आह्वान कर सकते हैं?
[एक्शन में लिंक] (http://www.manning.com/marguerie/) अभिव्यक्ति पेड़ पर एक विस्तृत अनुभाग है। –