क्या आप सी # में सामान्य रूपों का उपयोग कर सकते हैं?

आपको एक सामान्य रूप बनाने में सक्षम होना चाहिए:

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

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

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

0
ro fr bn

2 उत्तर

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

जेनेरिक फॉर्म डिज़ाइन करना

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

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

मेरे पास यह काम करने के लिए एक हैक है, जो काम करता है लेकिन आदर्श नहीं है:

प्रोजेक्ट में एक नई कक्षा जोड़ें जो फ़ॉर्म को अपने सरल नाम से विरासत में लाती है।

internal class MyGenericForm:
    MyGenericForm { }

This means that although the designer is still wrong the expected simple type (i.e without <>) is still found.

0
जोड़ा