我正在尝试在Visual Studio中设置一个全局变量,但我无法将其设置为静态。是否有办法让我将变量设置为静态并在不同方法之间共享,或者每次更改变量时保存变量的某种方式?
我正在尝试在Visual Studio中设置一个全局变量,但我无法将其设置为静态。是否有办法让我将变量设置为静态并在不同方法之间共享,或者每次更改变量时保存变量的某种方式?
Public Class GlobalVariables
Public Shared Bar As String
End Class
然后您可以使用类名称访问此内容:
GlobalVariables.Bar = "Hello world"
2 - 创建一个模块(类似于C#中的静态类)
Public Module GlobalVariables
Public Bar As String
End Module
Bar = "Goodbye cruel world"
Public Class GlobalVariables
Public Shared Foo As Integer
End Class
Private Sub IncrementIntegers()
Dim myGlobalVariables As New GlobalVariables
myGlobalVariables.Foo = 0
GlobalVariables.Foo = 0
myGlobalVariables.Foo += 10
GlobalVariables.Foo += 10
Dim iLocalInt1 = myGlobalVariables.Foo
MessageBox.Show("myGlobalVariables.Foo = " & iLocalInt1.ToString)
Dim iLocalInt2 = GlobalVariables.Foo
MessageBox.Show("GlobalVariables.Foo = " & iLocalInt2.ToString)
End Sub
Public Module1
Public Foo As String
End Module
Public Module2
Public Foo As String
End Module
移除 Module2 后,Foo 可以在任何地方被调用。
Foo = "Happy birthday"
有了Module2,Foo必须用名称限定,因为它们指向不同的变量,代表不同且独立的值。
Module1.Foo = "Goodbye cruel world"
Module2.Foo = "Hello new world"
Static
被翻译为Shared
。使用以下方式调用:ClassName.SharedVariableName
。必须将其声明为Public
,才能从类外部访问。请注意,这不仅在方法之间共享,还跨越不同的线程,这可能会导致锁定或不正确的结果(例如在ASP.NET中)。 - Tim Schmelter