2012-01-01 19 views
5

मैं Class1 और class2 जो Class1 अंदर है, VB.NET कोड:बाल वर्ग (नेस्टेड कक्षाओं में) से मूल वर्ग के अंदर मूल्य कैसे प्राप्त करें?

Public Class class1 
    Public varisbleX As Integer = 1 
    Public Class class2 
     Public Sub New() 
      'Here GET the value of VariableX 
     End Sub 
    End Class 

    Public Sub New() 
     Dim cls2 As New class2 
    End Sub 
End Class 

मैं VB.net में class2, कोड या सी # से varisbleX उपयोग करना चाहते सराहना की है, धन्यवाद।

उत्तर

8

आंतरिक वर्ग (कक्षा 2) बाहरी वर्ग (कक्षा 1) के किसी भी विशिष्ट उदाहरण से जुड़ा नहीं है। टी एक्सेस फ़ील्ड्स इत्यादि, आपको पहले क्लास 1 इंस्टेंस के लिए एक स्पष्ट संदर्भ होना होगा, शायद इसे कन्स्ट्रक्टर के माध्यम से पास करना होगा। उदाहरण के लिए, यह हो सकता है:

Public Class class1 
    Public varisbleX As Integer = 1 
    Public Class class2 
     Public Property Parent As class1 

     Public Sub New(oParent As class1) 
      Me.Parent = oParent 
      Console.WriteLine(oParent.varisbleX) 
     End Sub 
    End Class 

    Public Sub New() 
     Dim cls2 As New class2(Me) 
    End Sub 
End Class 
+0

क्या कक्षा साझा की जाती है? – ekkis

+0

@ekkis अधिक संदर्भ आवश्यक - मुझे –

+0

प्रश्न को समझ में नहीं आया है मैंने यहां प्रश्न को सुधार लिया है: http://stackoverflow.com/questions/11656743/accessing-shared-parent-fields-properties-in-nested-classes - वैसे, संदेश में @ekkis पाने के लिए आप किस चाल का उपयोग करते थे? मैं आपके जवाब में ऐसा नहीं कर सकता ... यह इसे बाहर ले जाता है! – ekkis

0

आप केवल आप जब Class2 आरंभ एक पैरामीटर के रूप चर (रों) पारित कर सकते हैं कुछ चर की जरूरत है।

Public Class Class1 

    Public VariableX As Integer = 1 

    Public Class Class2 
     Public Sub New(ByVal VariableX As Integer) 
      'Here GET the value of VariableX 
      Debug.Print(VariableX) 
     End Sub 
    End Class 

    Public Sub New() 
     Dim cls2 As New Class2(VariableX) 
    End Sub 

End Class 

इस तरह कक्षा 2 में कक्षा 1 के सभी चर और गुणों तक पहुंच नहीं है; केवल आप इसे स्पष्ट रूप से देते हैं। आम तौर पर हम नहीं चाहते कि बाल वर्ग अभिभावक वर्ग के नियंत्रण में हो। तो यह विधि उस अलगाव प्रदान करती है।

संबंधित मुद्दे