2011-01-18 116 views
5

इस पैटर्न के लिए क्या उपयोग किया जाता है? ध्यान दें कि यह सी ++ "उत्सुकता से आवर्ती टेम्पलेट पैटर्न" से अलग है।कक्षा एक्स: एक्स <T> {} पैटर्न सी # --- इसके लिए क्या उपयोग किया जाता है?

+3

क्या आपका मतलब है 'कक्षा एक्स: टी '? यदि ऐसा है, तो यह * उत्सुकता से पुनरावर्ती टेम्पलेट पैटर्न है। ध्यान दें कि यदि आपका शीर्षक सही है, तो 'एक्स' और 'एक्स ' वास्तव में दो अलग-अलग प्रकार हैं; हमें इस तरह के उपयोग का एक उदाहरण देखना होगा। – cdhowie

+0

हां, यह एक्स: एक्स सीआरटीपी पैटर्न नहीं है। – user580650

उत्तर

4

जेनेरिक पूर्वजों वर्ग को वास्तविक वंश को पता है कि इससे प्राप्त विरासत उन परिदृश्यों में सहायता करती है जहां सामान्य पूर्वजों को गैर-जेनेरिक वंशज के परिणाम के अनुबंध के रूप में एक विशेष गैर-जेनेरिक वंश वर्ग का खुलासा करने की आवश्यकता होती है।

public class Parent<T> 
    where T : Parent<T>, new 
{ 
    public static T Create() 
    { 
     return new T(); // would be typically something more sophisticated 
    } 
} 

public class Child : Parent<Child> 
{ 
} 

इस अवधारणा के प्राथमिक लाभ कोड-डि-डुप्लिकेशन है:

एक सामान्य उदाहरण कारखाने विधि सामान्य पूर्वज में घोषित है।

+0

क्या यह सिर्फ उत्सुकता से आवर्ती टेम्पलेट पैटर्न नहीं है? पोस्ट कक्षा X: X के बारे में पूछ रहा है, क्लास एक्स नहीं: वाई .... – womp

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