Thursday 15 May 2014

c# - How to cast an object programmatically at runtime? -


मान लें कि मेरे पास एक कस्टम नियंत्रण है:

  MyControl: नियंत्रण    

अगर मेरे पास ऐसा कोड है:

  सूची & lt; नियंत्रण & gt; सूची = नया ... सूची। जोड़ें (myControl); रोलआउटएनिमेशन एनिमेशन = सूची [0];  

मुझे पता है कि मैं इसे संकलन समय पर कर सकता हूं, लेकिन मैं इसे रनटाइम में करना चाहता हूं और MyControl विशिष्ट कार्यक्षमता का उपयोग करना चाहता हूं।

आप इसे रनटाइम में क्यों करना चाहते हैं? यदि आपके पास अपनी सूची में अधिक प्रकार के नियंत्रण हैं, जिनमें कुछ विशिष्ट कार्यक्षमता है, लेकिन विभिन्न प्रकार हैं, शायद उन्हें एक सामान्य इंटरफ़ेस को लागू करना चाहिए:

  इंटरफ़ेस MyControlInterface {myoidOfMicControlMethod (); } वर्ग MyControl: नियंत्रण, MyControlInterface {// स्पष्ट इंटरफ़ेस सदस्य कार्यान्वयन: शून्य MyControlInterface.MyControlMethod () {// विधि कार्यान्वयन }} वर्ग MyOtherControl: नियंत्रण, MyControlInterface {// स्पष्ट इंटरफ़ेस सदस्य कार्यान्वयन: शून्य MyControlInterface.MyControlMethod () {// विधि कार्यान्वयन। }} ..... // दो नियंत्रण कक्षाओं के दो उदाहरण, दोनों MyControlInterface MyControlInterface myControl = new MyControl () लागू करने के लिए; MyControlInterface myOtherControl = नया MyOtherControl (); // सूची के रूप में सूची की घोषणा करें & lt; MyControlInterface & gt; सूची के & lt; MyControlInterface & gt; सूची = नई सूची & lt; MyControlInterface & gt; (); // दोनों नियंत्रण सूची जोड़ें। जोड़ें (myControl); सूची। जोड़ें (मेरीऑपर कंट्रोल); // आप सूची दोनों के बिना उन दोनों पर विधि को कॉल कर सकते हैं [0] .MyControlMethod (); सूची [1] .MyControlMethod ();  

No comments:

Post a Comment