2010-08-18 8 views
9

आर # 4.5 (5 के जवाब का स्वागत है)
VS2008 (VS2010 के जवाब का स्वागत है)
सी # (Fwiw)आपके द्वारा प्रदान किए जा रहे पैरामीटर से मिलान करने के लिए स्वत: जेनरेट * नाम * उत्पन्न करें?

मैं एक निर्माता (सवाल भी तरीकों के लिए लागू होता है) का उपयोग कर रहा है, और वहाँ है IntelliSense:

Foo Constructor Intellisense, showing the parameter variable names

मैं अभी तक यह पहली पैरामीटर, "firstName" के लिए निर्दिष्ट करने के लिए एक मूल्य नहीं है। आज, मैं टाइप करें "फर्स्टनाम", फिर आईडीई मेरे लिए उस चर को बनाएं (जिसे मैं कुछ मान में प्रारंभ करता हूं)।

मैं समझता हूँ कि आईडीई मेरे लिए चर पैदा करेगा। मैं चाहता हूं कि यह मेरे लिए परिवर्तनीय नाम बनाएं।

मैं "firstName" टाइप नहीं करना चाहता हूं। मुझे पैरामीटर लेखक द्वारा परिवर्तनीय नाम पसंद है, और मैं अपने (कॉलिंग) कोड में उस चर नाम का उपयोग करना चाहता हूं।

इन स्वीकार्य चर नाम फिर से उत्पन्न के रूप में मैं पैरामीटर द्वारा ले जाते हैं, पैरामीटर, (कह कर बुलाया) कोड की इस पंक्ति के माध्यम से स्वचालित रूप से मुझे (बुला कोड) के लिए करने के लिए एक तरीका है?

+0

मैं पहले से ही बहुत खुश हूं अगर इंटेलिजेंस मौजूदा चर का सुझाव देगा जो पैरामीटर के समान नाम है ... – dtb

+0

मुझे नहीं लगता कि ये लोग आपके प्रश्न को समझ चुके हैं ... –

+0

सही ... बदलने के लिए सिफारिशें शब्दों? या ... यह एक नहीं है ... समस्या w/सवाल? – lance

उत्तर

2

आप VS2010 के साथ के लिए क्या देख रहे के करीब मिल सकता है नहीं है।

  • प्रकार p.Foo(

यह वर्तमान में चयनित निर्माता का वर्णन खुल जाएगा, सभी निर्माताओं की सूची से बाहर। यदि आप कोई अक्षर टाइप करते हैं, या ctrl + space दबाते हैं, तो इंटेलिजेंस ऑटो पूर्णता खुल जाएगी।

वीएस -2008 और वीएस -2010 के बीच यहां एक अंतर पैरामीटर नाम दिया गया है। वीएस -2010 में, आपकी समापन सूची में नामित पैरामीटर firstName: और lastName: के लिए प्रविष्टियां होंगी।

  • प्रकार पैरामीटर नाम के पहले अक्षर (क्या आप के रूप में "चर नाम पैरामीटर लेखक चुना" की बात कर रहे)

Intellisense सीधे कि प्रवेश के लिए कूद चाहिए, और आप ऐसा करने की अनुमति वैसे ही पूरा करना जो आमतौर पर करता है।

  • प्रकार एक अंतरिक्ष, दर्ज करें, या अल्पविराम

Intellisense यह नामित पैरामीटर के लिए इस्तेमाल किया पहचानकर्ता सम्मिलित होंगे। यह कोलन नहीं डालेगा (जब तक आप इसे टाइप नहीं करते), इसलिए आपको अपना लक्ष्य पूरा करने के लिए नामित पैरामीटर सुविधा का उपयोग करने की आवश्यकता नहीं है। आप इस तथ्य का लाभ उठा सकते हैं कि जिस पाठ को आप ढूंढ रहे हैं वह आपकी समापन सूची में है।

वास्तविक दृश्यों को वास्तव में उत्पन्न करने के लिए आपको विजुअल स्टूडियो कैसे मिलता है (जो आपके प्रश्न के मुताबिक, ऐसा लगता है कि आप पहले ही हल हो चुके हैं) मुझे परेशान करते हैं, और आपकी देखभाल करने के लिए आप पर निर्भर रहेंगे :) यदि आपके पास है उस दूसरी समस्या को पाला गया, मैं जानना चाहता हूं कि कैसे, भी।

+0

यह मेरी समस्या हल करता है। R # मेरे लिए चर बना देगा एक बार यह देखता है कि मैं ' मैंने उपयोग किया है (डब्ल्यू/ओ कोलन) एक पहचानकर्ता जो अस्तित्व में नहीं है, मुझे केवल उस चर के * मूल्य * प्रदान करने के लिए छोड़ रहा है। मेरे प्रश्न के पीछे विचार यह है कि मुझे केवल यह निर्धारित करना है कि आईडीई क्या पता नहीं लगा सकता है। टूल आईडीई "प्रकार" सबकुछ * यह * जानता है (जिस ऑब्जेक्ट को मैं कॉल कर रहा हूं उसका नाम, इसके पैरामीटर का नाम इत्यादि), मुझे केवल इतना ही प्रदान करने के लिए छोड़कर * मुझे पता है (वास्तविक * मूल्य * मैं हूं गुजर)। बाकी समारोह/बॉयलरप्लेट है। – lance

0

आप एक कोड स्निपेट बना सकते हैं जो चर बनाता है और इसे पैरामीटर के रूप में सम्मिलित करता है।

MSDN Reference on snippets

+0

प्रतिक्रिया के लिए धन्यवाद। इसके लिए मुझे एक विधि का अनूठा स्निपेट चाहिए जो मैं कॉल कर रहा हूं, जो व्यावहारिक नहीं है। अगर मुझे गलत लगता है, तो क्या आप कृपया प्रदान कर सकते हैं एक उदाहरण या उद्धरण पढ़ना जो मेरी समस्या को अधिक सटीक रूप से लक्षित करता है? – lance

0

मैं पूरी तरह अपने परिदृश्य समझ में नहीं आता, लेकिन मैं आपको बुलाया कोड में विधानसभा को कॉल करने से एक चर नाम इंजेक्षन करना चाहते हैं यह सोचते हैं रहा हूँ। यदि ऐसा है, तो आप सिस्टम में देख सकते हैं। कोडडॉम जो आपको अन्य कार्यक्षमताओं के अतिरिक्त रनटाइम के दौरान कक्षा और उसके memebers बनाने देता है।

+0

प्रतिक्रिया के लिए धन्यवाद। मुझे कोड लिखने के दौरान समाधान की आवश्यकता है, जबकि यह चल रहा है। – lance

0

मुझे पूरा यकीन है कि आप इसे रिशेर्पर या कोडरश/रिफैक्टर के साथ कर सकते हैं।

0

ऐसा लगता है कि आप जो करने की कोशिश कर रहे हैं वह टाइपिंग से बाहर हो गया है! आईडीई आपके पास कोड डालने के लिए इरादा रखता है ताकि आपको यह नहीं करना पड़े। एक बहुत ही बढ़िया लक्ष्य - अपवाद के साथ कि आप हमें सभी काम से बाहर रखेंगे ;-(

सभी मज़ेदार एक तरफ, जो आप शायद पहुंच रहे हैं वह एक कोड जेन टूल है जैसे टी 4 टूलबॉक्स (मेरा एक नए पसंदीदा खिलौने)। यदि आप ऐसे टूल की तलाश में हैं जो आपके कोड स्निपेट को टाइप करते समय ऑटो-जेनरेट करेगा, तो यह एक लंबा ऑर्डर होगा। उपलब्ध निकटतम चीज़ Resharper होगी।

यहां क्लास कन्स्ट्रक्टर का एक उदाहरण है मैं टी -4 टूलबॉक्स टेम्पलेट्स के अपने अनुकूलन से उत्पन्न:

public partial class EvaluationController : SmartController 
    { 
     private readonly IEvaluationService _evaluationSvc; 
     private readonly IEvaluationMapper _evaluationMapper; 
     private readonly IEvaluationCriterionMapper _evaluationCriterionMapper; 
     private readonly IParticipantEvaluationMapper _participantEvaluationMapper; 

     public EvaluationController(IEvaluationRepository repository, IEvaluationService evaluationSvc, IEvaluationMapper evaluationMapper, IEvaluationCriterionMapper evaluationCriterion, IParticipantEvaluationMapper participantEvaluation) 
     {//  : base(repository, evaluationMapper) 
       _evaluationSvc = evaluationSvc; 
       _evaluationMapper = evaluationMapper; 
      _evaluationCriterionMapper = evaluationCriterion; 
      _participantEvaluationMapper = participantEvaluation; 
     } 

अगर ऐसा है क्या आप के बाद कर रहे हैं, जगह शुरू करने के लिए होगा: http://t4toolbox.codeplex.com/

मुझे एक उदाहरण प्रोजेक्ट मिला है जहां मैं अपने व्यवसाय वर्गों को स्पिन करने के लिए टेम्पलेट्स के अनुकूलन का उपयोग करता हूं, विभिन्न विधियों & रिपोजिटरी परत।http://t4tarantino.codeplex.com/ उत्पादन की जटिलता के स्तर का एक उदाहरण आप उत्पन्न कर सकते हैं पर http://geekswithblogs.net/JamesFleming/archive/2010/08/18/code-generation-with-t4-toolbox.aspx

HTH