मैं इस परियोजना के कोडबेस को दोबारा क्रियान्वित कर रहा हूं, जिसमें मैं वर्तमान में हूं ताकि कक्षा/इंटरफेस जो असेंबली की सीमाओं से परे उपयोगी न हों, को आंतरिक (सार्वजनिक रूप से) घोषित किया जाना चाहिए। ।मैं आंतरिक इंटरफेस के सदस्यों को कैसे कार्यान्वित कर सकता हूं
internal interface IFirstInterface
{
...
}
internal interface ISecondInterface
{
IFirstInterface First{ get; }
...
}
public class Implementer : ISecondInterface
{
public IFirstInterface First {get; private set;}
...
}
मेरे सवालों का:
सार्वजनिक रूप से क्यों लागू किया जाना आंतरिक इंटरफेस के सदस्यों की है, लेकिन मैं निम्नलिखित कोड के साथ एक समस्या हुई? यदि आप किसी आंतरिक वर्ग पर इंटरफ़ेस को लागू करते हैं, तो क्या कार्यान्वित सदस्य आंतरिक नहीं हो सकते हैं? यह एक बड़ा मुद्दा नहीं है क्योंकि कक्षा आंतरिक रूप से दी गई है, इसलिए अंतरफलक सदस्यों को सार्वजनिक रूप से सुलभ नहीं किया जाएगा। यह सिर्फ काउंटर अंतर्ज्ञानी लगता है।
असंगत पहुँच:
मुख्य समस्या यह है ऊपर के बाद से यह कथित रूप से एक आंतरिक इंटरफ़ेस यानी मैं संकलक से निम्न त्रुटि प्राप्त है के बाद से मैं IFirstInterface के लिए एक सार्वजनिक गेटर नहीं हो सकता परिदृश्य के साथ है : संपत्ति प्रकार 'IFirstInterface' संपत्ति की तुलना में कम पहुँचा जा सकता है 'Implementer.First'
वहाँ है ई इस तरह से किसी भी तरह से?
नोट: मुझे पता है वहाँ शायद इस रिफैक्टरिंग अभ्यास में कम मूल्य है कि लेकिन मैंने सोचा कि यह एक अच्छा तरीका है मुझे और अधिक गहराई से आंतरिक संशोधक के निहितार्थ को समझने के लिए किया जाएगा।
तो इसकी एक विकल्प है, तो आप इंटरफ़ेस तरीकों सार्वजनिक होने के सीमा के आस-बजाय एक सार आधार वर्ग का उपयोग करके प्राप्त कर सकते हैं। –