2012-03-12 21 views
9

चैलेंज: कृपया निम्नलिखित वर्ग का एक उदाहरण (टी के रूप में किसी भी प्रकार का प्रयोग करके) बनाने के लिए:असंभव रिकर्सिव जेनेरिक क्लास परिभाषा?

class Foo<T> 
    where T : Foo<T> 
{ 
} 

आप आप की तरह किसी भी तकनीक का उपयोग कर सकते हैं; सादा "नया MyClass ...", प्रतिबिंब का उपयोग, एमएसआईएल हैकिंग, जो भी हो।

+1

जो आप प्राप्त करना चाहते हैं उस पर अंतर्दृष्टि प्रदान करने से लोगों को बेहतर वैकल्पिक उत्तर देने में मदद मिल सकती है। –

+1

[रिकर्सिव जेनेरिक प्रकार] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/647533/recursive-generic-types) – Amber

+3

संभव गृहकार्य-प्रश्न? – Carsten

उत्तर

12
static class Program { 
    static void Main() { 
     Foo<Bar> foo = new Foo<Bar>(); 
    } 
} 
class Foo<T> where T : Foo<T> {} 
class Bar : Foo<Bar> {} 
+0

बिल्कुल सही ........ –

+3

या बस 'नया बार() '। –

+0

हाहा कूल! मैंने वास्तव में नहीं सोचा था कि यह संभव था! हेहे। मुझे सही साबित होना है। वाकई बहूत बढिया! :) –

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