अस्थायी तौर पर इस आप भी इस सोचा हासिल कर सकते हैं वह का उपयोग सिस्टम में चीजों का। रिफ्लेक्शन। नेमस्पेस दर्ज करें और मेरा मानना है कि LINQ अभिव्यक्ति पेड़ों के उपयोग के माध्यम से एक विधि के कार्यान्वयन को प्रदान करना संभव है। किस तरह की साफ है:
var assembly = AppDomain.CurrentDomain.DefineDynamicAssembly(new AssemblyName("TestAssembly"), AssemblyBuilderAccess.RunAndSave);
var mod = assembly.DefineDynamicModule("TestModule");
var type = mod.DefineType("TestType");
var method = type.DefineMethod("Increment", MethodAttributes.Public, typeof(int), Type.EmptyTypes);
Expression<Func<int, int>> inc = (a) => a + 1; // this is cool
inc.CompileToMethod(method);
यह एक सा पहली बार में कठिन लग सकता है, लेकिन यह वास्तव में शांत सामान है, और आप संकलक मुश्किल सामान, विधि कार्यान्वयन उत्पन्न करते हैं। लेकिन आप वास्तव में इस तरह के फ़ील्ड नहीं बना सकते हैं, जिसके लिए कुछ आईएल की आवश्यकता होगी। जो बहुत मजेदार है लेकिन वास्तव में कठिन काम है।
अस्वीकरण:
मैं ऊपर कोड को चलाने के लिए प्रयास नहीं किया है। लेकिन मुझे पता है कि यह ऐसा कुछ चला जाता है, यह थोड़ी देर हो गया है क्योंकि मैंने ऐसा कुछ किया है।
स्रोत
2010-06-11 22:16:21
क्या आप हमें दिखा सकते हैं कि आपने अभी तक इस होमवर्क असाइनमेंट पर क्या किया है? – 48klocs
कोड-इट-फॉर-मेरे प्रश्न की तरह बहुत कुछ लगता है ... – Dykam
मैं "यह होमवर्क नहीं है" रखना चाहता था, लेकिन मैंने सोचा कि आप लोग मुझे संदेह का लाभ देंगे। मैं पहले से ही 27 साल का हूँ। यह "मेरे लिए कोड" प्रश्न नहीं है। जिस समस्या का मैं सामना करता हूं वह वास्तव में बहुत बड़ा है, लेकिन मैं समस्या को ऊपर दिए गए सरल प्रश्न को कम करता हूं। – zaidwaqi