这两种创建数组的方法有什么区别?

时间:2013-09-21 09:42:53

标签: arrays vb.net

在VB.net中使用这两种创建数组的方法有什么区别,它们的工作方式是否相似?哪一个更喜欢和在什么条件下?

第一种方法:

Dim testarray(2) as String 
testarray(0) = "string1"
testarray(1) = "string2"
testarray(2) = "string3"

第二种方法:

System.Array类提供名为CreateInstance的共享方法,该方法创建System.Array类的新实例。

Dim   testarray as Array = Array.CreateInstance(GetType(String),2)
testarray.SetValue(CStr("Test string"),0)

由于

2 个答案:

答案 0 :(得分:3)

第一个返回string数组作为string的数组。第二个返回一个string数组作为非泛型Array类对象。

使用第二个,您将失去编译时类型安全性,您可以将代码暴露给装箱/拆箱操作。这是因为SetValue方法需要object而不是正确的(示例中为string)类型实例。

你绝对应该使用第一个。

答案 1 :(得分:1)

我用

    Dim ta() As String = New String() {"1", "2", "3"}