答案 0 :(得分:1)
几乎不要声明任何类型为Array
的东西。如果要创建String
数组,请声明:
Dim itemNames As String() = System.Enum.GetNames(GetType(Configuration.eSystemType))
当然,假设Enum.GetNames
的返回类型为String()
,则可以使用类型推断:
Dim itemNames = Enum.GetNames(GetType(Configuration.eSystemType))
我还把多余的System
命名空间限定符放在了这里。
也许您被Enum.GetValues
声明为Array
类型的事实所迷惑。我确实说过“几乎没有”。在极少数情况下需要它,但是作为应用程序开发人员,您几乎肯定永远都不需要这样做。返回的数组是您指定的类型,因此您应将其转换为该类型:
Dim itemValues = DirectCast(Enum.GetValues(GetType(Configuration.eSystemType)),
Configuration.eSystemType())
尽管ListItem
构造函数仍然需要两个String
参数,所以您仍然需要将Configuration.eSystemType
的值转换为Strings
:
Dim item As New ListItem(itemNames(i), itemValues(i).ToString())