2011-05-10 86 views
0

我不明白爲什麼這樣寫:VB.NET中泛型的用法是什麼?

Class BlaBla(Of T as String) 
End Class 

是不是隻是與此相同:

Class BlaBla(ByVal str as String) 
End Class 

順便說一句,你在你的項目中使用泛型經常?

回答

6

是不是一樣的,因爲這:

Class BlaBla(ByVal str as String) 
End Class 

一件事,你不能寫。所以不,這是不一樣的。你甚至不清楚你的意思,即你期望它做什麼。

至於什麼時候使用泛型:每次你想重用一個特定類與不同類型的結合,而不必每次重寫它。

最好的例子是集合類,例如List(Of T)。如果你不知道這是什麼:它基本上就像一個數組,只有更多的操作。您可以爲不同類型創建數組:整數數組以及字符串數組。你會如何爲自己的Array實現獲得相同的效果?答案是:泛型。

+1

+1 「至於什麼時候使用泛型:每次你想重用一個特定的類與不同類型的結合,而不必每次都重寫它」。 – 2011-05-10 12:56:08

+0

我的不好,我真的打算寫Sub而不是Class,但我想答案是一樣的。 – Cobold 2011-05-10 13:11:40

1

我認爲你是令人困惑的聲明和用法。

正確聲明將只是:

Public Class Foo(Of T) 

什麼爲T - 以及它可以是幾乎任何你喜歡的。這是一個泛型類型:

所以,你可以使用一個字符串:

Dim bar as Foo(Of String) 

您可以使用一個整數

Dim bar as Foo(Of Integer) 

你可以使用一個類:

Dim bar as Foo(of MyClassThatICreated)