मैं एक नेस्टेड क्लास बनाना चाहता हूं जो केवल अभिभावक वर्ग से दिखाई दे और तत्काल दिखाई दे।
लेकिन मैं भी अभिभावक वर्ग के सार्वजनिक चर के माध्यम से नेस्टेड कक्षा के उदाहरण का उपयोग करने में सक्षम होना चाहता हूं।
मैंने नेस्टेड क्लास को निजी बनाने, या नेस्टेड क्लास के कन्स्ट्रक्टर को निजी बनाने की कोशिश की, लेकिन यह संकलित नहीं होगा।
क्या यह .NET में ऐसा करना संभव है?निजी नेस्टेड कक्षाएं
यह संकलित करता है तथा काम करता है, लेकिन नेस्टेड वर्ग किसी के द्वारा इस्तेमाल किया जा सकता:
Public Class OuterClass
Public X As Integer = 123
Public NestedClassInstance As New NestedClass(Me)
Public Class NestedClass
Private Parent As OuterClass
Public Sub New(ByVal _Parent As OuterClass)
Parent = _Parent
End Sub
Public Sub GetParentX()
Debug.WriteLine("X = " & Parent.X.ToString)
End Sub
End Class
End Class
Sub Main()
Dim OuterClassInstance As New OuterClass
OuterClassInstance.NestedClassInstance.GetParentX()
End Sub
एकमात्र चीज जो नेस्टेड क्लास के बारे में विशेष है वह यह है कि यह उस श्रेणी के निजी और संरक्षित सदस्यों तक पहुंच सकती है (बशर्ते इसका एक संदर्भ हो)। क्या यह नेस्टेड क्लास की कार्यक्षमता है जिसकी आपने परवाह की थी या आप कुछ और करने की कोशिश कर रहे थे? –
अधिकांशतः मैं नेस्टेडिसेंस से नेस्टेड क्लास को बाहर रखने की कोशिश कर रहा हूं, और एक बीमा भी है जिसे माता-पिता वर्ग को छोड़कर तत्काल नहीं किया जा सकता है। – mcu
मेरे लिए, नेस्टेड निजी श्रेणी परिभाषा केवल होल्डिंग क्लास के लिए उपलब्ध होनी चाहिए, वैसे ही निजी चर हैं, जिसमें वे उस वर्ग के लिए निजी हैं। लेकिन अगर होल्डिंग क्लास इसे तुरंत चालू करती है और इसे होल्डिंग क्लास के अंदर सार्वजनिक चर के लिए असाइन करती है, तो उदाहरण होल्डिंग क्लास के क्षेत्र के रूप में किसी के लिए सुलभ होना चाहिए। यह सिर्फ मेरे लिए एक बहुत ही प्राकृतिक वस्तु व्यवहार की तरह लगता है। ओह अच्छा। – mcu