सी ++ टेम्पलेट्स में, कोई निर्दिष्ट कर सकता है कि एक निश्चित प्रकार पैरामीटर डिफ़ॉल्ट है। अर्थात। जब तक स्पष्ट रूप से निर्दिष्ट नहीं किया जाता है, तो यह टाइप टीक्या सी # जेनेरिक में "डिफ़ॉल्ट" टाइप पैरामीटर के लिए कोई उचित दृष्टिकोण है?
का उपयोग करेगा सी # में किया जा सकता है या अनुमानित किया जा सकता है?
मैं की तरह कुछ के लिए देख रहा हूँ:
public class MyTemplate<T1, T2=string> {}
तो उस प्रकार का एक उदाहरण है कि स्पष्ट रूप से निर्दिष्ट नहीं है T2
: अनिवार्य रूप से
MyTemplate<int> t = new MyTemplate<int>();
होगा:
MyTemplate<int, string> t = new MyTemplate<int, string>();
आखिरकार मैं ऐसे मामले को देख रहा हूं जिसमें एक टेम्पलेट है जो काफी व्यापक रूप से है sed, लेकिन मैं एक अतिरिक्त प्रकार पैरामीटर के साथ विस्तार करने पर विचार कर रहा हूँ। मैं अनुमान लगा सकता हूं, मुझे लगता है, लेकिन अगर मैं इस नस में अन्य विकल्प थे तो मैं उत्सुक था।
आह की तरह एक वर्ग अधिभार बना सकते हैं ... कि समझ में आता है।टाइप पैरामीटर एक अद्वितीय हस्ताक्षर प्रदान करते हैं, तो टाइप नाम समान होने की अनुमति है? – el2iot2
@ee: हां, पैरामीटर पैरामीटर गिनती द्वारा 'अधिभार योग्य' हैं। –
@ee: हाँ, लेकिन मैं ऐसा करने से सावधान रहूंगा। ऐसा करने के लिए .NET में यह "कानूनी" है, लेकिन इससे भ्रम पैदा हो सकता है। मैं स्ट्रिंग व्युत्पन्न प्रकार का नाम मुख्य जेनेरिक वर्ग के समान होना चाहिए (इसलिए यह स्पष्ट है कि यह क्या है/ढूंढना आसान है), लेकिन एक ऐसा नाम जो यह स्पष्ट करता है कि यह एक स्ट्रिंग है। –