मान लीजिए आप निम्नलिखित वर्ग है पासिंग:एक अंतरफलक संग्रह
class Car : IPainting
{
...
}
फिर इस तरह एक समारोह:
void AddCars(IEnumerable<Car> collection)
फिर इस तरह एक कोड का टुकड़ा:
Car bmw = new Car();
Car mercedes = new Car();
IPainting a = (IPainting) bmw;
IPainting b = (IPainting) mercedes;
IPainting[] paintings = new IPainting[] {a, b};
AddCars(paintings); // fails to compile
यह की पाठ्यक्रम संकलित नहीं करता है क्योंकि AddCars() विधि केवल कारों का संग्रह स्वीकार करती है लेकिन यह 'पेंटिंग्स' सरणी से बना है।
मुझे पता है कि सी # 4.0 शायद इसके लिए एक समाधान प्रदान करेगा। क्या इसके लिए आज कोई कामकाज है?
धन्यवाद,
अल्बर्टो
सी # 4.0 एक प्रदान नहीं करेगा आपके पास यहां मौजूद कोड के लिए समाधान। आप विरासत में उच्चतर किसी प्रकार को पारित करने में सक्षम नहीं होंगे कुछ कम उम्मीद की एक विधि के लिए rarchy। जैसा कि अन्य ने बताया है, आपकी विधि को आईपैंटिंग में लेना होगा - इसके लिए काम करने के लिए कार नहीं। –