मैं निम्न कार्य करने की कोशिश कर रहा हूँ:पैरामीटर रहित कन्स्ट्रक्टर रखने के लिए मैं व्युत्पन्न कक्षाओं को क्यों लागू नहीं कर सकता?
class Program
{
static void Main(string[] args)
{
foo<baz> fooObject = new foo<baz>();
AnotherClass<baz> _baz = new AnotherClass<baz>();
_baz.testMethod(fooObject);
}
}
public class AnotherClass<T> where T : bar
{
public void testMethod(foo<T> dummy)
{
foobar = dummy;
}
private foo<T> foobar = null;
}
public class foo<T> where T : bar, new()
{
public foo()
{
_t = new T();
}
private T _t;
}
public abstract class bar
{
public abstract void someMethod();
// Some implementation
}
public class baz : bar
{
public override void someMethod()
{
//Implementation
}
}
और मैं यह बताता है कि 'टी' के क्रम में पैरामीटर के रूप में इसका इस्तेमाल करने के 'टी' में एक सार्वजनिक parameterless निर्माता के साथ एक गैर सार प्रकार होना चाहिए कोई त्रुटि मिलती है सामान्य प्रकार या विधि। मैं पूरी तरह से समझता हूं कि यह क्यों होना चाहिए, और यह भी समझना चाहिए कि मैं 'नया' होने से बचने के लिए एक निर्माता के तर्क के रूप में 'टी' प्रकार की पूर्व-प्रारंभिक वस्तु को पार कर सकता हूं, लेकिन क्या इसके आसपास कोई रास्ता है? पैरामीटर रहित कन्स्ट्रक्टरों की आपूर्ति के लिए 'बार' से प्राप्त कक्षाओं को लागू करने का कोई तरीका?
फिक्स्ड - मुझे अन्य क्लास() पर 'नई()' बाधा याद आ रही थी।
धन्यवाद, ऐसा लगता है कि यह तय हो गया है! –