क्या इंटरफ़ेस में एक एक्सटेंशन विधि लागू करना संभव है? (सी # प्रश्न)इंटरफेस पर एक्सटेंशन विधियों को लागू किया जा सकता है?
उदाहरण के लिए है कि प्राप्त करने के लिए निम्नलिखित:
एक ITopology इंटरफ़ेस
बनाने इस इंटरफेस के लिए एक विस्तार विधि बनाने के (जैसे सार्वजनिक स्थैतिक int CountNodes (इस ITopology topologyIf))
फिर जब एक वर्ग (MyGraph जैसे) जो ITopology लागू करता बनाने, तो उसे अपने गणना नोड्स विस्तार होगा।
इस तरह की कक्षाओं इंटरफेस को लागू करने क्या विस्तार विधि में परिभाषित किया गया था से तालमेल एक सेट वर्ग के नाम के लिए नहीं होगा।
पुन: "बेशक" - मुझे लगता है कि सवाल वास्तुकला आप परोक्ष उल्लेख बू आ रही है पता चलता है। यदि आपके पास इंटरफेस पर एक्सटेंशन हो सकते हैं, तो इंटरफेस में कार्यान्वित तरीकों को क्यों लागू नहीं किया जा सकता है? यह समझने में समझा जा सकता है कि या तो इंटरफेस ठोस तरीके से सक्षम हो सकते हैं, या, एक बार जब आप जानते हैं कि वे नहीं कर सकते हैं, तो सोचें कि विस्तार विधियों को व्यवहार्य क्लज के रूप में अनुमति नहीं दी जानी चाहिए। (लेकिन वे हैं। आपके उत्कृष्ट उत्तर पर बहस नहीं, बस "निश्चित रूप से" और आईनम के लिंक, [LINQ] नहीं (https://github.com/dotnet/corefx/blob/master/src/System.Linq/ src/system/linq/Contains.cs)।^डी) कुछ गंध है! – ruffin