我写了这个 - 非常简单 - 函数,然后想知道VB是否有一些预先构建的功能来执行此操作,但找不到任何特定的功能。
Private Shared Function MakeArray(Of T)(ByVal ParamArray args() As T) As T()
Return args
End Function
不像
那样使用Dim someNames() as string = MakeArray("Hans", "Luke", "Lia")
因为这可以用
完成Dim someNames() as string = {"Hans", "Luke", "Lia"}
但更像是
public sub PrintNames(names() as string)
// print each name
End Sub
PrintNames(MakeArray("Hans", "Luke", "Lia"))
有什么想法吗?
答案 0 :(得分:16)
任何不做的理由:
Dim someNames() as string = New String()("Han", "Luke", "Leia")
唯一的区别是类型推断,据我所知。
我刚检查过,VB 9也有implicitly typed arrays:
Dim someNames() as string = { "Han", "Luke", "Leia" }
(据我所知,这在VB 8中不起作用,但是显式版本会。隐式版本对于匿名类型是必需的,这对于VB 9来说也是新的。)
答案 1 :(得分:6)
Dim somenames() As String = {"hello", "world"}
答案 2 :(得分:2)
以下代码适用于VB 10:
Dim someNames = {"Hans", "Luke", "Lia"}
答案 3 :(得分:1)
PrintNames(New String(){"Hans", "Luke", "Lia"})
答案 4 :(得分:1)
Microsoft建议使用以下格式
Dim mixedTypes As Object() = New Object() {item1, item2, itemn}
每http://msdn.microsoft.com/en-US/library/8k8021te(v=VS.80).aspx
注意,您不必指定新数组的大小,因为这是从初始化的args数量推断出来的。如果确实要指定长度,则不要指定“长度”,而是指定数组中最后一个空格的索引号。即。新对象(2){0,1,2}'注3 args。