पृष्ठभूमि: मैंने नेस्टेड कक्षा एन के साथ नेस्टेड कक्षा एन के साथ संलग्न किया है। एन में एन के कई उदाहरणों के साथ। संलग्न (पैरेंट) कक्षा में मैं कुछ गणना कर रहा हूं और मैं नेस्टेड क्लास के प्रत्येक उदाहरण के लिए मान निर्धारित कर रहा हूं। कुछ ऐसा:नेस्टेड क्लास के निजी सदस्यों तक पहुंच कैसे प्राप्त करें?
n1.field1 = ...;
n1.field2 = ...;
n1.field3 = ...;
n2.field1 = ...;
...
यह एक बड़ी eval विधि (मूल वर्ग में) है। मेरा इरादा है - चूंकि सभी गणना मूल वर्ग में हैं (वे प्रति घोंसला प्रति उदाहरण नहीं कर सकते हैं क्योंकि यह कोड को और अधिक जटिल बना देगा) - सेटर्स को केवल मूल वर्ग और गेटर्स सार्वजनिक के लिए उपलब्ध कराएं।
और अब वहाँ एक समस्या है:
- जब मैं setters निजी बनाने, माता पिता के वर्ग उन्हें
- acces नहीं कर सकते जब मैं उन्हें सार्वजनिक, हर कोई मान
- बदल सकते हैं बनाने के लिए और सी # नहीं मित्र अवधारणा
- मैं कन्स्ट्रक्टर में मूल्यों को पास नहीं कर सकता क्योंकि आलसी मूल्यांकन तंत्र का उपयोग किया जाता है (इसलिए उन्हें संदर्भित करते समय उदाहरण बनाए जाना चाहिए - मैं सभी ऑब्जेक्ट्स बनाता हूं और गणना मांग पर ट्रिगर होती है)
मैं अटक गया हूं - यह कैसे करें (मूल वर्ग तक पहुंच सीमित करें, और नहीं, कम नहीं)?
मुझे लगता है मैं पहले उत्तर-प्रश्न मिलेगा - "लेकिन आप प्रत्येक क्षेत्र प्रति मूल्यांकन क्यों विभाजित नहीं है" - तो मैं उदाहरण के द्वारा इस का जवाब: कैसे आप न्यूनतम और अधिकतम की गणना करते हैं संग्रह का मूल्य? एक तेज़ तरीके से? जवाब है - एक पास में। यही कारण है कि मेरे पास एक eval फ़ंक्शन है जो गणना करता है और सभी फ़ील्ड को एक साथ सेट करता है।
क्या आंतरिक कीवर्ड पर्याप्त नहीं है? – Kimi
यह बहुत अधिक है :-)। – greenoldman
आप अपने सहकर्मियों पर भरोसा नहीं करते? –