में एक अभिव्यक्ति का उपयोग करते हुए मैं जानता हूँ कि मैं का उपयोग कर अभिव्यक्ति पेड़ बना सकते हैं:एक संकलक-उत्पन्न अभिव्यक्ति पेड़
फैक्टरी तरीकों।
Expression
पर लैम्ब्डा अभिव्यक्ति का कंपाइलर रूपांतरण।
जटिल अभिव्यक्ति पेड़ के लिए मैं 2 पसंद करूंगा क्योंकि यह अधिक संक्षिप्त है।
क्या इस तरह से पहले से निर्मित Expressions
का उपयोग करना संभव है?
using System;
using System.Linq.Expressions;
public class Test
{
public static Expression<Func<int, int>> Add(Expression expr)
{
#if false
// works
ParameterExpression i = Expression.Parameter(typeof(int));
return Expression.Lambda<Func<int, int>>(Expression.Add(i, expr), i);
#else
// compiler error, can I pass expr here somehow?
return i => i + expr;
#endif
}
public static void Main()
{
Func<int, int> f = Add(Expression.Constant(42)).Compile();
Console.WriteLine(f(1));
}
}
मुझे लगता है कि आप सभी की जरूरत अभिव्यक्तिकरने के लिए अभिव्यक्ति से ऐड में अभिव्यक्ति का प्रकार निर्दिष्ट करने के लिए हैक्योंकि मुझे लगता है कि उपरोक्त उदाहरण में क्या हो रहा है लेकिन यह अनुमानित है। –