2010-04-30 19 views
38

ऐसाजेनेरिक प्रकार के लिए डिफ़ॉल्ट?

public class PriorityQueue<TValue, TPriority=int> where TPriority : IComparable 

कुछ करने के लिए संभव है (ध्यान दें =int)?

इससे पहले कि आप यह सुझाव देते हैं, हाँ, मैं जानता हूँ कि मैं सिर्फ एक और लाइन जोड़ सकते हैं:

public class PriorityQueue<TValue> : PriorityQueue<TValue, int> { } 

लेकिन अगर यह एक परम के रूप में यह करने के लिए संभव है मैं सोच रहा हूँ।

+1

यह एक अच्छा सी # 5.0 विकल्प है –

उत्तर

29

नहीं। सी # में जेनेरिक प्रकारों पर डिफ़ॉल्ट प्रकारों के लिए कोई विकल्प नहीं है।

यदि आपको इस व्यवहार की आवश्यकता है तो आपका दूसरा उदाहरण अक्सर "सर्वश्रेष्ठ" विकल्प उपलब्ध है।

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