मेरे सी # कौशल कम कर रहे हैं, लेकिन मैं नहीं समझ सकता क्यों निम्नलिखित में विफल रहता है:सी # जेनरिक और इंटरफेस और सरल OO
public interface IQuotable {}
public class Order : IQuotable {}
public class Proxy {
public void GetQuotes(IList<IQuotable> list) { ... }
}
तो कोड इस प्रकार है:
List<Order> orders = new List<Orders>();
orders.Add(new Order());
orders.Add(new Order());
Proxy proxy = new Proxy();
proxy.GetQuotes(orders); // produces compile error
एम आई बस कुछ गलत कर रहा है और इसे नहीं देख रहा है? चूंकि ऑर्डर लागू करने योग्य है, आदेश की एक सूची quoatables के IList के रूप में जाना होगा। मेरे पास जावा में कुछ ऐसा है और यह काम करता है, इसलिए मुझे यकीन है कि इसकी सी # ज्ञान की कमी है।
धन्यवाद! मेरी सोच हमेशा सूची थी आईएलिस्ट के ठोस कार्यान्वयन। ऑर्डर वही है (लेकिन पाठ्यक्रम के अधिक IQuotables हो सकते हैं। इसलिए जब तक मैं IQuotable के साथ IList को लागू करता हूं तब तक मैं कुछ भी विधि में पास कर सकता हूं। जाहिर है कि ऐसा नहीं है इसलिए मुझे कॉन्वर्सिस पर पढ़ना है। मैं इसका उपयोग कर रहा हूं। नेट 2 क्योंकि यह एक सीएलआर संग्रहीत प्रक्रिया है जो केवल .NET 2 लेती है। अंत में, मैंने आपके दूसरे उदाहरण का उपयोग किया है, जो मुझे लगता है, समझ में आता है और मुझे वही करता है जो मुझे चाहिए। – Daniil