हां, इससे इस मामले में कोई फर्क नहीं पड़ता। कुछ मामलों में यह यदि आप एक आधार वर्ग जो पहले से ही एक अंतरफलक को लागू करता है का उपयोग कर रहे एक फर्क कर सकते हैं, लेकिन आप इसे अपने आप को reimplement को स्पष्ट रूप से चाहते हैं - लेकिन इस मामले में कोई आधार वर्ग (अंतर्निहित object
के अलावा अन्य) वहाँ है और यह बिल्कुल वैसे ही व्यवहार किया होगा।
मेरी यादों के विपरीत, मुझे विश्वास नहीं है कि मेटाडेटा में वर्ग का प्रतिनिधित्व करने के तरीके में कोई अंतर है या नहीं, कोड स्पष्ट रूप से सभी इंटरफेस घोषित करता है या नहीं। यहाँ एक उदाहरण है:
interface IFoo {}
interface IBar : IFoo {}
class FooBar1 : IBar {}
class FooBar2 : IBar, IFoo {}
दोनों ILDASM और परावर्तक FooBar1
और FooBar2
के लिए ही जानकारी दिखाता है ... यह उन दोनों को लागू करने IBar
और IFoo
को दर्शाता है।
दूसरे शब्दों में, हम नहीं बता सकते हैं कि List<T>
के लिए मूल स्रोत कोड वास्तव में सभी इंटरफेस निर्दिष्ट करता है या नहीं। शायद यह करता है, शायद यह नहीं करता - लेकिन इससे कोई फर्क नहीं पड़ता।
संपादित करें: पूर्णता के लिए, मैं मामलों में आप एक और इंटरफेस के साथ दो इंटरफेस का विस्तार कर रहे जाँच की। मुझे उस मामले में मेटाडेटा में कोई अंतर नहीं मिल रहा है, या तो। मुझे यकीन है कि मुझे कुछ ऐसी स्थिति याद है जिसमें यह स्पष्ट था, लेकिन मुझे अब यह नहीं मिल रहा है।
स्रोत
2010-07-11 18:04:13
इसलिए चूंकि कोई बेस क्लास नहीं है। यह कोई फर्क नहीं पड़ता है। फिर डेवलपर्स को उन दो इंटरफ़ेस 'फिर से' क्यों मिला? –
@ मार्को: मेरा संपादित उत्तर देखें। –
समझ गया। आपका बहुत बहुत धन्यवाद। यह जल्दी था। –