如何从函数调用具有全局范围的新类

时间:2011-12-04 04:00:04

标签: vb.net class

Salvete!我想在单击按钮时创建一个类的新实例,但我需要使用表单上的其他控件与该类的成员进行交互,因此我需要该类具有全局范围。我知道我可以在formload中调用新类,但是类会创建需要最新的某些变量。如果在formload上完成,那么变量将不是最新的,因为如果在formload中创建类,那么它在那时将具有不同的信息。当然,必须有一种方法可以从可以从同一类的其他子类访问的子中创建myClass的实例。

这样的事情:   点击myForm.button1dim myclassInstance as new myClass

然后,点击myForm.button2,制作mylabel.text = myClassiInstance.myvariable

2 个答案:

答案 0 :(得分:1)

很难理解你的要求,但似乎你只想查看Shared关键字。基本上共享意味着单个实例。

因此无论你应用它什么,它只会被创建一次并被绑定到类的类型而不是它的实例。

 Private Shared sharedInt As Integer
    Private Shared sharedPropValue As String

How to create and use shared members by using Visual Basic .NET

答案 1 :(得分:1)

首先,您可能遇到问题,因为MyClass是保留关键字,因此如果您尝试使用此名称创建类,则需要选择其他类名。

话虽如此,我相信你想要的东西类似于以下内容,我们将类的实例存储为表单的私有成员。只要表单存在,此实例才会“生效”,因此如果需要在表单之间共享,则需要将实例移动到其他位置(全局变量或共享成员)。

Public Class Form1

    Private m_CurrentInstance As ThisIsMyClass

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        m_CurrentInstance = New ThisIsMyClass
    End Sub

    Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
        If m_CurrentInstance IsNot Nothing Then
            myLabel.Text = m_CurrentInstance.MyVariable
        End If
    End Sub
End Class