如果 class y 在 class x 内部,为什么 class y 的实例不在实例内部?
if class y is inside of class x, why isnt instance of class y inside of instance?
我正在为我正在编写的杂货店应用程序编写 VB.NET class 库,但我认为我对 OOP 在 VB.NET 中的工作方式有误解。我原以为如果 class x
在 class y
中,那么 class x
的 instance 也会在 instance[=26 中=] 的 class y
,但显然情况并非如此。我如何设置它才能通过 class y
访问 class x
的实例?还有为什么实例 x 不在实例 y 中?
(更新:我的意思是这个)
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 x = New y.x()
MsgBox(yinst.xinst) //instance inside of instance
End Sub
End Class
这会起作用(消息框调用除外),但我不确定这是否是您真正想要的。
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
访问。
我正在为我正在编写的杂货店应用程序编写 VB.NET class 库,但我认为我对 OOP 在 VB.NET 中的工作方式有误解。我原以为如果 class x
在 class y
中,那么 class x
的 instance 也会在 instance[=26 中=] 的 class y
,但显然情况并非如此。我如何设置它才能通过 class y
访问 class x
的实例?还有为什么实例 x 不在实例 y 中?
(更新:我的意思是这个)
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 x = New y.x()
MsgBox(yinst.xinst) //instance inside of instance
End Sub
End Class
这会起作用(消息框调用除外),但我不确定这是否是您真正想要的。
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
访问。