0

我有一个名称空间,里面有一个类,里面有另一个类,即

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 类的任何其他代码。最安全的方法是什么?如果我在 CI 中这样做会使用结构,但显然它们在 VB 中效率较低?

4

1 回答 1

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

如果子类需要其他类访问,则通过属性公开实例化版本,而不仅仅是私有变量(或在函数中返回实例化版本)。

Return m_objSubClass

最后,如果您的值不需要持久化,您可以简单地在函数中实例化一个 Subclass2:

Dim objSubClass2 As New SubClass2
objSubClass2.X = 5
Return objSubClass2 
于 2013-07-03T17:58:08.437 回答