2012-04-25 4 views
6

मैं सी # का उपयोग करके एक गेम लिख रहा हूं और कई मामलों में पाया गया है जहां एक फ़ंक्शन प्रतिनिधि होता है और मैंने इसके बजाय पैरामीटर के रूप में उपयोग करने के लिए एक प्रतिनिधि को बनाने और कैशिंग करने के बजाय फ़ंक्शन नाम में अनजाने में पारित किया है। इससे इन कार्यों के लिए प्रत्येक कॉल के लिए एक प्रतिनिधि वस्तु बनने का कारण बनता है, जो फ़ंक्शन लौटने पर तत्काल कचरा बन जाता है।सी # में निहित प्रतिनिधि अनुमान से बचने या पहचानने के लिए कैसे?

मैं सभी स्थानों पर जहां मैं इस गलती की है प्राप्त करना चाहते हैं, और मैं उन्हें की तलाश में हर फ़ाइल की हर पंक्ति को पढ़ने से बचने के लिए पसंद करते हैं (वहाँ साल कोड के लायक हैं)। मैंने देखा कि वीबी के पास 'विकल्प सख्त' है जो ऑब्जेक्ट्स के अंतर्निहित निर्माण को अक्षम कर देगा जो मुझे लगता है कि सी # में यह सुविधा थी, लेकिन मुझे नहीं लगता कि यह ऐसा करता है। मैंने संकलक चेतावनी विकल्पों की भी समीक्षा की है और उनमें से कोई भी यहां या तो मदद करने लगता है।

क्या निहित प्रतिनिधि अनुमान द्वारा बनाई गई इन वस्तुओं की पहचान करने का कोई उचित सुविधाजनक तरीका है, इसलिए मुझे पता चल सकता है कि कचरे से बचने के लिए मुझे कॉलबैक बनाने/कैश करने की आवश्यकता है?

+1

वहाँ है कुछ कोड उदाहरण प्रदान कर सकते हैं जहां, उदाहरण के लिए, एक दृश्य स्टूडियो regex खोज उन्हें मिल सकती है? – mellamokb

+0

एकमात्र तरीका मैं देखता हूं कि कोई प्रतिनिधि/फ़ंक्शन जो प्रतिनिधि को स्वीकार करता है, फिर राइट-क्लिक-> संदर्भ ढूंढें (हालांकि इसमें प्रत्येक कॉल को मैन्युअल रूप से जांचना शामिल है)। –

+1

क्या आपके पास कोई सबूत है कि यह वास्तव में * आपको समस्या का कारण बन रहा है? मैं उम्मीद करता हूं कि उस समय के विशाल बहुमत के लिए, स्पष्ट कैशिंग के बजाय विधि समूह रूपांतरण का उपयोग करने के पठनीयता लाभ की तुलना में प्रदर्शन नकारात्मकता नगण्य है। –

उत्तर

10

संक्षेप में, अपने प्रश्न "मैं सब विधि समूह के रूपांतरण कैसे मिल सकती है?" है

हम वर्तमान में Roslyn नामक प्रोजेक्ट कोड पर काम कर रहे हैं जो आपको उसी अर्थपूर्ण विश्लेषण इंजन का उपयोग करने की अनुमति देगा जो सी # कंपाइलर और आईडीई उपयोग करता है। यह वाक्यात्मक भाषा का मॉडल सामने आ जाएगी, और फिर एक अर्थगत विश्लेषण एपीआई जिसके द्वारा आप अर्थ विश्लेषक के सवाल पूछ सकते हैं प्रदान करते हैं।

रोसलिन के साथ आप वाक्य रचना के पेड़ में अपने सभी कोड संकलन और उसके बाद हर अभिव्यक्ति के लिए उन वाक्य रचना के पेड़ खोज सकते हैं। एक एपीआई होगा जो आपको यह निर्धारित करने की अनुमति देती है कि अभिव्यक्ति को किसी भी रूप में परिवर्तित किया गया था, और यदि हां, तो रूपांतरण विश्लेषक ने रूपांतरण को वर्गीकृत कैसे किया।

हम "समुदाय प्रौद्योगिकी पूर्वावलोकन" चरण में वर्तमान में कर रहे हैं; हमारे पास प्रारंभिक कार्यान्वयन है लेकिन यह अभी तक पूरी तरह से विशेष रुप से प्रदर्शित नहीं है। मुझे याद नहीं है कि विधि समूह रूपांतरण विश्लेषक को सीटीपी रिलीज में लागू किया गया था या नहीं।

इसे आज़मा कर देखें, और यदि आप इसे बारे में प्रतिक्रिया है हम रोसलिन मंच पर अपने विचारों को सुनने के लिए प्यार होता।

यहाँ विवरण:

http://msdn.microsoft.com/en-us/roslyn

+0

धन्यवाद, मैं कई कारणों से रोज़लिन परियोजना की प्रतीक्षा कर रहा हूं, मैं यह देखने के लिए चीजों की सूची में जोड़ दूंगा कि मैं इसके साथ कुछ समय बिताने में सक्षम हूं। –

संबंधित मुद्दे