कोई भी निम्न श्रेणी घोषणा में where TEntity : class, IEntity, new()
लाइन के साथ मेरी सहायता कर सकता है।"तेज" सी में तेज घोषणा में कीवर्ड
public abstract class BaseEntityManager<TEntity>
where TEntity : class, IEntity, new()
कोई भी निम्न श्रेणी घोषणा में where TEntity : class, IEntity, new()
लाइन के साथ मेरी सहायता कर सकता है।"तेज" सी में तेज घोषणा में कीवर्ड
public abstract class BaseEntityManager<TEntity>
where TEntity : class, IEntity, new()
where TEntity : ...
सामान्य पैरामीटर TEntity लिए बाधाओं लागू होता है। इस मामले में, की कमी कर रहे हैं:
वर्ग: TEntity के तर्क के लिए एक संदर्भ प्रकार होना चाहिए
IEntity: तर्क है या IEntity इंटरफ़ेस
नई() को लागू करना चाहिए: तर्क एक सार्वजनिक parameterless निर्माता होना आवश्यक है
यदि आप कुछ कोड जोड़ सकते हैं तो कोई भी आधार श्रेणी के रूप में बेसइन्टिटी मैनेजर का उपयोग कैसे कर सकता है जो शानदार होगा :) – niico
एक सामान्य प्रकार बाधा कहां है। वह पंक्तियां पढ़ती हैं कि टाइप टीएनटीटी एक मान प्रकार के विपरीत संदर्भ प्रकार होना चाहिए, इंटरफेस आईईएनटीटी को लागू करना चाहिए और इसमें एक कन्स्ट्रक्टर होना चाहिए जो कोई पैरामीटर नहीं लेता है।
where
कीवर्ड के बाद वर्ग घोषणा जो भी लिखते सामान्य TEntity
हो सकता है प्रतिबंधित। इस मामले में TEntity
एक वर्ग (अर्थात यह int
या DateTime
की तरह एक मान प्रकार नहीं हो सकता है) होना चाहिए, और यह इंटरफ़ेस IEntity
को लागू करना चाहिए। new()
बाधा इंगित करता है कि इस वर्ग के अंदर तरीकों TEntity
(जैसे new TEntity()
) के प्रतिनिधित्व वाले सामान्य वर्ग के डिफ़ॉल्ट निर्माता
प्रश्न क्या है फोन करने की क्षमता है?
मुझे लगता है कि सवाल क्या है मुझे शॉट पर ले जाने दो। बाधा यह सुनिश्चित करती है कि आप केवल सामान्य पैरामीटर के साथ बेसइन्टिटी मैनेजर को उपclass कर सकते हैं जो एक संदर्भ प्रकार है जो आईएनएनटीटी को लागू करता है और इसमें पैरामीटर रहित कन्स्ट्रक्टर होता है।
ई.एक्स।
public class Product : IEntity {
public Product() {}
}
public class Wrong {
public Wrong() {}
}
public class WrongAgain : IEntity {
private Wrong() {}
}
// compiles
public ProductManager : BaseEntityManager<Product> {}
// Error - not implementing IEntity
public WrongManager : BaseEntityManager<Wrong> {}
/Error - no public parameterless constructor
public WrongAgainManager : BaseEntityManager<WrongAgain> {}
"क्या कोई मुझे लाइन के साथ मदद कर सकता है ...?" यही तो प्रश्न है। यह स्पष्ट है कि वह क्या पूछ रहा है। –
देखने और अपने प्रश्न है? –
मुझे लगता है कि वह वाक्यविन्यास की व्याख्या के लिए पूछ रहा है। – Matt