2011-05-28 80 views
0

我该怎么办一样VB.NET创建新的T []在VB.NET

以下
List<T[]> result = new List<T[]>(); 

// single combination 
if (k == 0) 
{ 
    result.Add(new T[0]); // T is function type argument of generic function 

我怎么能写在上面VB.NET的最后一行?

我想:

result.Add(New T(0)) 'doesn't work! 

回答

1

它应该是:

result.Add(New T(0) {}) 
+0

那么在这种情况下,大括号具有哪些功能呢? – 2011-05-28 14:56:12

+0

对不起,应该是New T(-1){}。该值不是VB中的数组长度,而是上限。花括号告诉VB编译器它是一个数组,它可以用来放置数组的元素,例如:New T(1){New T(),New T()} – Neverbirth 2011-05-28 15:02:18

0

我试过如下:

Dim A(0) As T     ' Length = 1 
    Dim B As T() = New T(0) {}  ' Length = 1 
    Dim C As T() = New T() {}  ' Length = 0 
    Dim D As T() = New T(-1) {}  ' Length = 0 
    Dim E(-1) As T     ' Length = 0 
    Dim F As T() = Array.CreateInstance(GetType(T), 0) ' Length = 0 

因此,我建议第三选项,它是最干净。