में आंतरिक संपत्ति सेटर्स मैं इस दृष्टिकोण के लिए एक अच्छा तरीका जानने की कोशिश कर रहा हूं। मेरे पास एक ग्राहक वर्ग है जो आईसी कस्टमर इंटरफ़ेस लागू करता है। इस इंटरफ़ेस में गुण की एक संख्या है:सी #
public interface ICustomer
{
string FirstName {get; set;}
string LastName {get; set;}
}
मैं केवल कुछ वर्गों लेकिन उन गुणों को सेट करने की क्षमता है करना चाहते हैं; अर्थात्, परियोजना में उन वर्गों। इसलिए मैं सेटर internal
बनाने के बारे में सोचा:
public class Customer : ICustomer
{
string FirstName {get; internal set;}
string LastName {get; internal set;}
}
मैं इंटरफ़ेस तथापि में आंतरिक रूप में है कि सेटर को चिह्नित करना चाहते, इसलिए वहाँ कोई मौका नहीं किसी ICustomer लागू करता है और विधानसभा के बाहर किसी उन गुणों को संशोधित करता है। क्या ऐसा करने का कोई अच्छा तरीका है?
सहायता के लिए धन्यवाद। अगर मैं ऐसा करता हूं, और उपभोग करने वाला वर्ग आईसी कस्टमर का उपयोग करता है तो यह सेटटर तक नहीं पहुंच सकता है। – larryq
@larryq यह पूरा बिंदु है, क्योंकि इंटरफ़ेस सेटटर को नहीं कर रहा है। यदि आप एक दूसरा आंतरिक इंटरफ़ेस लागू करना चाहते हैं जो सेटटर जोड़ता है तो आप कर सकते हैं। मेरे पास अक्सर इंटरफ़ेस की एक श्रृंखला होती है: यह एक वास्तविक उदाहरण है: 'IDimensionedMap' केवल 2 डी इकाई के आयामों के लिए प्रतिबद्ध है; पठनीय गुणों के साथ 'आईआरएडमैप', 'आईआरएडमैप: आईडीमिनेटेड मैप' केवल पढ़ने या गणना किए गए मानचित्रों के लिए, और फिर 'IWriteMap: IReadMap'। लेकिन यह विस्तार योग्य उपयोगिता वर्गों का एक जटिल परिवार है। (ये 2 डी हिल्बर्ट रिक्त स्थान हैं, शब्दकोश नहीं, यदि आप उत्सुक हैं।) – SAJ14SAJ
@larryq जबकि मुझे यकीन नहीं है कि आपको इसकी आवश्यकता है या नहीं, मैंने एक वैकल्पिक कार्यान्वयन जोड़ा है जिसमें इंटरफ़ेस एक आंतरिक सेट विधि को परिभाषित करता है। – Servy