Arrays 在VB.net中声明公共数组

Arrays 在VB.net中声明公共数组,arrays,vb.net,Arrays,Vb.net,我知道要在VB中声明字符串,我会使用 Dim ExString As String 要声明一个全局字符串,我将使用 Public Shared Property ExString As String 我会使用它来访问(假设它保存在一个名为GlobalVars的类中) 我还知道,声明字符串数组 Dim ExString(3) As String 但是,声明公共数组似乎不起同样的作用,行: Public Shared Property ExString(3) As String 似乎不起作用

我知道要在VB中声明字符串,我会使用

Dim ExString As String
要声明一个全局字符串,我将使用

Public Shared Property ExString As String
我会使用它来访问(假设它保存在一个名为GlobalVars的类中)

我还知道,声明字符串数组

Dim ExString(3) As String
但是,声明公共数组似乎不起同样的作用,行:

Public Shared Property ExString(3) As String
似乎不起作用。
我想知道如何在visual basic中声明字符串的公共数组?
我正在使用VisualStudio2010,如果这有什么不同的话

提前感谢

您不能将长度(3)添加到变量中,因为Visual Studio会唠叨:

应为标识符

但你可以做一些类似的事情:

Public Shared Property MyString As String() = New String() { "abc", "def", "ghi"}

如果只需要变量的一个实例,则需要一个静态成员。静态成员属于类,而不是单个对象。VB称它们为共享成员,因为您可以想象在所有实例之间共享相同的变量:

Public Class Form1

Public Shared ShuffleArray() As Integer

End Class


ReDim Form1.ShuffleArray(52)
Form1.ShuffleArray(0) = 10
或者,您可以创建包含变量的模块。模块是一种特殊类型的类,其中发生了两件神奇的事情。首先,所有成员都在全局名称空间中,因此不需要模块名来访问它们。第二,所有成员都自动是静态的

Module GlobalConstants

Public ShuffleArray() As Integer

End Module


ReDim ShuffleArray(51)
GlobalConstants.ShuffleArray(0) = 10
Console.WriteLine(ShuffleArray(0)) ' output : 10

我认为如果你不想修正你的5个值,这将符合你的目的

这是在类还是模块中?要声明全局
字符串
,您可以执行各种操作。例如:
Public Shared ExString As String
(而且
Shared
部分也不是严格要求的;它有其特定的含义,您在使用它之前应该知道)。@Jeremy它是一个类。数组不能声明为共享。您可以创建表单的实例,并根据需要重新定义数组。让我知道这是否有意义。@DotNetWeblineindia这是错误的,我会以同样的方式访问它吗?例如MsgBox(GlobalVars.MyString(4))?它是一个普通数组,只是作为静态/共享属性公开,当然可以。好的,谢谢。如果我不知道这3个值的内容呢?我必须把{“”、“”}放进去吗?只需完全跳过赋值,这样数组一开始什么都不是,只要知道值就可以赋值。我还在想这意味着什么。。我在这方面相当新手,我想他有一个固定的数组,所以没有必要使用ReDim。如果他想拥有一个“动态数组”,他应该使用一个列表(字符串)。@DatBrummie:这不只是全局变量的分离。
Module GlobalConstants

Public ShuffleArray() As Integer

End Module


ReDim ShuffleArray(51)
GlobalConstants.ShuffleArray(0) = 10
Console.WriteLine(ShuffleArray(0)) ' output : 10