如何从子类(嵌套类)中获取父类中的值?

时间:2012-01-01 09:04:21

标签: .net vb.net nested-class

我有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#中的代码表示赞赏,谢谢。

2 个答案:

答案 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的所有变量和属性;只有你明确给出它。通常我们不希望子类控制父类。所以这种方法提供了分离。