मैं निम्नलिखित सी # परीक्षण कोड है:सी #: जेनेरिक प्रकार जिनमें एक निर्माता है?
class MyItem
{
MyItem(int a) {}
}
class MyContainer<T>
where T : MyItem, new()
{
public void CreateItem()
{
T oItem = new T(10);
}
}
दृश्य स्टूडियो यह संकलन नहीं कर सकता, त्रुटि जहां 'नए' प्रयोग किया जाता है लाइन पर है:
'T': cannot provide arguments when creating an instance of a variable type
इसे करने के लिए सी # में संभव है गैर-पैरामीटर रहित कन्स्ट्रक्टर के साथ जेनेरिक प्रकार का ऑब्जेक्ट बनाएं? सी ++ टेम्पलेट्स में ऐसी चीज करने में कोई समस्या नहीं है, इसलिए मैं बहुत उत्सुक हूं कि मैं सी # में एक ही चीज़ क्यों नहीं कर सकता। शायद कुछ अतिरिक्त 'कहां' आवश्यक है या वाक्यविन्यास अलग है?
जैसा कि मुझे याद है, 'नई()' बाधा 'एक्टिवेटर। क्रिएट इंस्टेंस()' कॉल में अनुवाद करती है। –