के बिना पैरामीटर रहित कन्स्ट्रक्टर को लागू करने का कोई तरीका है मेरे पास एक इंटरफ़ेस ISnack
है जो क्लास द्वारा कार्यान्वित किया गया है, इसमें डिफ़ॉल्ट पैरामीटर रहित कन्स्ट्रक्टर होना चाहिए। मूल रूप से इस:जेनेरिक बाधा
public interface ISnack<T> where T : new()
{
}
मैं <T> where T : new()
का उपयोग सिर्फ parameterless निर्माता लागू करने के लिए।
मैं तो इंटरफ़ेस इस तरह से लागू करना होगा:
public class Cutlet : ISnack<Cutlet>
{
}
यह काम करता है और यह बस सुनिश्चित करता है Cutlet
वर्ग एक parameterless निर्माता है।
public abstract class Kitchen<T> where T : ISnack
{
}
आवश्यकता है कि Kitchen
बाधा जहां T
एक ISnack
होना चाहिए होना चाहिए:
अब मैं एक सार आधार वर्ग Kitchen
है। लेकिन यह काम नहीं करेगा क्योंकि ISnack
कोई मौजूद नहीं है, लेकिन केवल ISnack<T>
है।
यदि मैं यह
public abstract class Kitchen<T> where T : ISnack<T>
{
}
की कोशिश की यह संकलन नहीं ('T' must be a non-abstract type with a public parameterless constructor in order to use it as parameter 'T' in the generic type or method 'ISnack<T>'
) है और यह भी मेरे संदर्भ में कोई मतलब नहीं होगा।
अगर मैं एक T
प्रकार पैरामीटर द्वारा बाधित किए बिना एक parameterless निर्माता के लिए ISnack
रों मजबूर सकता है, तो T
Kitchen<T>
में आसानी से एक ISnack
हो सकता है। इसके बारे में कैसे जानें?
मार्क, डिट्टो! आपने जो कुछ भी किया है, उसे रेखांकित किया है .. हमम रनटाइम वह विकल्प है जो मुझे लगता है कि मुझे लगता है कि – nawfal
@nawfal अगर यह ठीक है, तो आप रसोई के लिए एक दूसरा सामान्य तर्क जोड़ सकते हैं और यह काम करना चाहिए: 'कक्षा रसोई जहां टी: ISnack
जहां एस: नया() ' –@ फ़ेलिक्सके। क्या आप इसे एक और जवाब दे सकते हैं? – nawfal