我有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
我想从class2访问varisbleX,VB.net或C#中的代码表示赞赏,谢谢。
答案 0 :(得分:8)
内部类(class2)与外部类(class1)的任何特定实例都没有关联。在T访问字段等中,您需要首先对class1实例进行显式引用,可能通过构造函数传递它。例如,它可能是:
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
答案 1 :(得分: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
这样,Class2无法访问Class1的所有变量和属性;只有你明确给出它。通常我们不希望子类控制父类。所以这种方法提供了分离。