मेरे पास एक situtaiton है जहां मैंने bussiness तर्क पढ़ा और वास्तविक मानों के साथ चर को प्रतिस्थापित करें और फिर मुझे परिणाम प्राप्त करने के लिए इसका मूल्यांकन करने की आवश्यकता है। मैं वर्तमान में यह करने के लिए bcParser का उपयोग कर रहा हूं और यह एक्सेल प्रारूप की तरह लिखे गए सभी तर्कों के लिए ठीक काम करता है।क्या बयान के गतिशील के लिए अभिव्यक्ति वृक्ष बनाना संभव है?
मुझ पर फेंक दिया गया वक्र गेंद यह है कि, यदि स्थिति if(cond, true, false)
एक्सेल की तरह नहीं होगी, तो यह सी # की तरह होगी जहां if (cond) { true; } else { false;}
, यह अधिक समझदार और बनाए रखने में आसान बनाता है। चूंकि मैं हाथ से पहले मूल्य के साथ सभी चर बदलता हूं, मुझे बस इसका मूल्यांकन करना है। वर्तमान में मैं सी # विधियों के तर्क को निर्यात करके और प्रतिबिंब का उपयोग करके इस समस्या को हल कर रहा हूं, मैं इसका मूल्यांकन कर रहा हूं और यह भी काम करता है।
मुझे आश्चर्य है कि कोई अन्य विकल्प है, मैं शर्त के लिए प्रत्येक कोड के लिए कोड लिखना नहीं चाहता हूं और रन टाइम पर इसका मूल्यांकन करना चाहता हूं। मैं सोच रहा था कि क्या मुझे किसी प्रकार का टोकन पार्सर बनाने में सक्षम होना चाहिए और सी # देशी अभिव्यक्ति evalution को कॉल करना चाहिए और गणना करना चाहिए। मैं विस्तार पेड़ों को समझने में नहीं गया हूं, ऐसा लगता है कि उस दृष्टिकोण के साथ यह संभव है। इससे पहले कि मैं वहां जाऊं, मैं जानना चाहूंगा कि यह संभव है? धन्यवाद,
अभिव्यक्ति पेड़ आपको स्ट्रिंग को पार्स करने में मदद नहीं करेंगे। आप [कोडडॉम] (http://msdn.microsoft.com/en-us/library/y2k85ax6.aspx) या [Rosalyn] (http://msdn.microsoft.com/en-us/roslyn] को देखना चाह सकते हैं)। –