मैंने देखा है यह दो बार अब सिंटेक्स, और यह मेरे में चिंता करने की शुरुआत कर रहा है,विधि <ClassName> का अर्थ क्या है?
उदाहरण के लिए:
iCalendar iCal = new iCalendar();
Event evt = iCal.Create<Event>();
मैंने देखा है यह दो बार अब सिंटेक्स, और यह मेरे में चिंता करने की शुरुआत कर रहा है,विधि <ClassName> का अर्थ क्या है?
उदाहरण के लिए:
iCalendar iCal = new iCalendar();
Event evt = iCal.Create<Event>();
यह एक सामान्य विधि है, बनाएं प्रकार पैरामीटर के साथ घोषित किया गया है, और अधिक जानकारी के लिए इस लिंक को जांचें:
यह एक सामान्य विधि कॉल कर रहा है - तो आपके मामले में, विधि घोषित किया जा सकता है इस तरह:
0123:public T Create<T>()
आप कोण कोष्ठक में टाइप तर्क, बस के रूप में आप एक सामान्य प्रकार का एक उदाहरण बनाने के लिए निर्दिष्ट कर सकते हैं
क्या इससे मदद मिलती है? सामान्य तरीकों और जेनेरिक प्रकार के बीच
एक अंतर यह है कि संकलक प्रकार तर्क अनुमान लगाने के लिए कोशिश कर सकते हैं। उदाहरण के लिए, यदि आपका Create
विधि के बजाय थे:
public T Copy<T>(T original)
तुम सिर्फ
Copy(someEvent);
कह सकते हैं और संकलक का अनुमान लगा है कि आप का मतलब:
Copy<Event>(someEvent);
मेरी इच्छा है कि मैं दो सही उत्तरों चुन सकता हूं। धन्यवाद दस लाख: डी – inspite
क्या यह निर्भरता इंजेक्शन का एक रूप माना जाएगा? –
@mmmshuddup: नहीं, मैं ऐसा नहीं कहूंगा। –
यह जिस तरह से आप सी # में एक सामान्य विधि का उल्लेख है।
जब आप एक सामान्य विधि को परिभाषित आप इस तरह कोड:
Array.ForEach(myArray, Console.WriteLine);
:
return-type MethodName<type-parameter-list>(parameter-list)
जब आप एक सामान्य विधि कॉल, संकलक आमतौर पर निर्दिष्ट तर्कों से प्रकार पैरामीटर, इस उदाहरण की तरह infers
इस उदाहरण में, यदि "myArray" एक स्ट्रिंग सरणी है, तो यह Array को कॉल करेगा। FEEach < स्ट्रिंग > और यदि यह एक int सरणी है, तो यह Array को कॉल करेगा। FEEach <int>।
कभी-कभी, संकलक से पैरामीटर से प्रकार का अनुमान लगाने के लिए असंभव है (जैसे आपका उदाहरण, जहां कोई पैरामीटर नहीं है)। इन मामलों में, आपको उन्हें मैन्युअल रूप से निर्दिष्ट करना होगा।
यह वाक्यविन्यास सिर्फ एक विधि के लिए जेनिक्स लागू कर रहा है। यह आमतौर पर उन परिदृश्यों के लिए उपयोग किया जाता है जहां आप विधि के रिटर्न प्रकार को नियंत्रित करना चाहते हैं। आपको इस प्रकार का सिंटैक्स कोड में बहुत कुछ मिलेगा जो आईओसी फ्रेमवर्क का उपयोग करता है।
यह एक सामान्य विधि है जो Factory Method पैटर्न लागू करती है।
धन्यवाद, बिल्कुल वही जो मैं खोज रहा था। Thx दोस्त – inspite
पहला लिंक वास्तव में सहायक है; हालांकि दो अन्य टूट गए हैं। – GDP2