如果类y在类x中,为什么实例中没有类y的实例?

时间:2016-01-08 18:14:26

标签: vb.net oop inner-classes

我正在为杂货店应用程序编写VB.NET类库我写作但我认为我对OOP如何在VB.NET中工作有误解。我原以为如果class x位于class yclass x实例也会位于{{1>}的实例中但显然事实并非如此。如何设置它以便能够通过class y访问class x的实例?另外,为什么在实例y中没有实例x?

(更新:我的意思是这个)

class y

1 个答案:

答案 0 :(得分:1)

这将有效(除了消息框调用),但我不确定这是否是你真正想要的。

Public Class y
   Public Class x '//class inside of class
   End Class
End Class

Public Class Form1
   Public Sub Form1_Load(<params>) Handles Me.Load
        Dim yinst As y = New y()
        Dim xinst As y.x = New y.x()
        'MsgBox(yinst.xinst) '//instance inside of instance
   End Sub
End Class

如果你想让y的实例拥有x的实例,那么我想你想要这样的东西:

Public Class y
    private x As New x 'A reference to an instance of x
    Public Class x 'class inside of class
    End Class
End Class

......或更好:

Public Class y
     Private _x As New x 'A reference to an instance of x
     Public Class x 'class inside of class
End Class

    Public Property InstX As x
        Get
            Return _x
        End Get
        Set(value As x)
            _x = value
        End Set
    End Property
End Class

在其中任何一种形式中,x都可以Dim xinst As y.x = yinst.InstX到达。