我的命名空间里面有一个类,里面有另一个类,即
namespace MySpace
public class MainClass
public class SubClass
public x as integer
public z as integer
end class
public function Foo ()
dim y as SubClass
y.x = 5
return
end function
end class
end namespace
除了行y.x = 5
用下划线加下划线“变量y在赋值之前使用。在运行时可能会产生空异常”
基本上我希望能够拥有Foo分配的多个项目,然后可用于使用MainClass类的任何其他代码。最安全的方法是什么?如果我在C中这样做,我会使用一个结构但显然它们在VB中的效率较低?
答案 0 :(得分:2)
你可以让x和z共享:
Public Class SubClass
Public Shared x As Integer
Public Shared z As Integer
End Class
或者您可以实例化一个类级变量:
Public Class MainClass
Private m_objSubClass As New SubClass2
并且这样打电话:
Public Function Foo()
'Shared
SubClass.x = 5
'Instantiated Class-Level variable
m_objSubClass.x = 5
End Function
如果其他类需要访问子类,则通过Property而不是私有变量公开实例化版本(或者在函数中返回实例化版本)。
Return m_objSubClass
最后,如果你的值不需要持久化,你可以简单地在函数中实例化一个Subclass2:
Dim objSubClass2 As New SubClass2
objSubClass2.X = 5
Return objSubClass2