मुझे लगता है कि नेस्टेड कक्षाएं .NET ऑब्जेक्ट मॉडल की मुख्य विशेषता नहीं थीं और इसे संसाधनों को बचाने के लिए बस गिरा दिया गया था। कुछ तकनीकी कठिनाइयों (यानी दृश्यता या पुनरावर्ती प्रकार परिभाषाओं के साथ) हो सकती है, लेकिन मुझे नहीं लगता कि यह एक बड़ी समस्या होगी।
कई मामलों ऐसे ही एक iterators के रूप में सी # में नेस्टेड कक्षाएं, जहां का प्रयोग करेंगे, तो आप अच्छी तरह से वस्तु भाव का उपयोग कर सकते
, इसलिए मुझे लगता है कि वे नेस्टेड वर्गों के लिए कुछ तरीके प्रतिस्थापन में हैं:
type Collection() =
member x.GetEnumerator() =
let n = ref 0
{ new IEnumerator with
member x.Current = box n.Value
member x.MoveNext() = incr n; true
member x.Reset() = n := 0 }
हालांकि यह है नेस्टेड कक्षाओं के समान ही, इसे नेस्टेड क्लास
के रूप में संकलित नहीं किया गया है और ऑब्जेक्ट अभिव्यक्ति का शरीर
Collection
के निजी सदस्यों तक नहीं पहुंच सकता है। मैं समर्थन कर लगता है कि यह, भाव थोड़ा के संकलन को मुश्किल है क्योंकि वस्तु भाव एक वर्ग संदर्भ के बाहर दिखाई दे सकता है कि ...
वास्तव में, यह वस्तु अभिव्यक्ति से private
सदस्यों तक पहुँचने के लिए संभव है, हालांकि अभी भी कोड नहीं है एक घोंसला वर्ग के रूप में संकलित। विवरण के लिए टिप्पणियां देखें।
स्रोत
2012-01-20 22:46:25
यह नेस्टेड (स्थैतिक) वर्गों का समर्थन करता है: 'मॉड्यूल एक्स = मॉड्यूल वाई = जे = 3;; –