2008-08-14 10 views
28

आप एक सामान्य रूप बनाने में सक्षम होना चाहिए:क्या आप सी # में सामान्य रूपों का उपयोग कर सकते हैं?

public partial class MyGenericForm<T> : 
    Form where T : class 
{ 
    /* form code */ 
    public List<T> TypedList { get; set; } 
} 

वैध सी # है, और संकलित करता है। हालांकि डिजाइनर काम नहीं करेगा और फॉर्म रनटाइम अपवाद फेंक देगा यदि आपके पास कोई छवियां हैं जो बताती हैं कि यह संसाधन नहीं ढूंढ पा रहा है।

मुझे लगता है कि ऐसा इसलिए है क्योंकि खिड़कियों के डिजाइनर मानते हैं कि संसाधन सरल प्रकार के नाम के तहत संग्रहीत किए जाएंगे।

परियोजना है कि अपनी साधारण नाम के साथ प्रपत्र विरासत को एक नया वर्ग जोड़ें:

उत्तर

18

हाँ आप कर सकते हैं! यहाँ एक ब्लॉग पोस्ट मैंने कुछ समय पहले चाल के साथ किया जाता है:

Designing Generic Forms

संपादित करें: ऐसा लगता है कि आप पहले से ही यह इस तरह से कर रहे हैं। यह विधि ठीक काम करती है इसलिए मैं इसे बहुत ही हास्यास्पद नहीं मानूंगा।

+1

यदि आपके पास 3 रूप हैं तो क्या होगा? मुझे फॉर्म 3 चाहिए: फॉर्म 2। इसमें फॉर्म 2 में सामान्य प्रकार पैरामीटर + नियंत्रण शामिल हैं। कोई उपाय? – mynkow

0

मैं जो काम करता है, लेकिन आदर्श नहीं है इस समाधान करने के लिए एक हैक, है।

internal class MyGenericForm: 
    MyGenericForm<object> { } 

इसका मतलब यह है कि हालांकि डिजाइनर अभी भी गलत है उम्मीद सरल प्रकार हैं (यानी <> के बिना) अभी भी पाया जाता है।

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

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