从类函数返回对象

时间:2013-07-03 17:46:26

标签: vb.net class function return-type

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

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中的效率较低?

1 个答案:

答案 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