मान लीजिए मेरे पास दो फ़ंक्शन हैं:
फ़ू (params INotifyPropertyChanged [] आइटम) {/ / डू सामान} फ़ू & lt; T & gt; (IEnumerable & lt; T & gt; आइटम) जहां T: INotifyPropertyChanged {Foo (items.ToArray ()); }
दूसरा वाला मुझे जहां T: INotifyPropertyChanged
कॉल करता है, लेकिन दूसरा हल करता है स्वयं के लिए तो मुझे स्टैक अतिप्रवाह अपवाद मिलता है।
- क्या यह स्पष्ट करना संभव है कि जब कुछ अस्पष्टता हो, तो मुझे कौन सा अधिभार चाहिए?
- क्या कॉल करने का एक और तरीका है जेनेरिक प्रकार की बाधाओं को मानते हुए
पैरामेज टाइप के लिए एक व्यवहार्य विकल्प बनाते हैं?
अग्रिम धन्यवाद !
आपको एक
INotifyPropertyChanged []
पास नहीं करना होगा, नहींटी []
।
उदाहरण के लिए:फ़ू & lt; T & gt; (IEnumerable & lt; T & gt; आइटम) जहां T: INotifyPropertyChanged {Foo (items.Cast & lt; INotifyPropertyChanged & gt; ) .ToArray ()); }
सामान्य तौर पर, हालांकि,
<पूर्व>IEnumerable
संस्करण कोparams
संस्करण से कॉल करना बेहतर है, जैसे:फ़ू (पैराम्स इनोटेफप्रोटीटी चेंजेड [] आइटम) {फू ((आईएनइमेरेबल & लेफ्टिनेंट; इनोटिफिप्रोपर्टी चेंगलटेड & gt;) आइटम); } Foo & lt; T & gt; (IEnumerable & lt; T & gt; आइटम) जहां T: INotifyPropertyChanged {// do stuff}
Comments
Post a Comment