在VB.NET中使用泛型有什么用?

时间:2011-05-10 12:40:41

标签: .net vb.net generics

我不明白为什么这样写:

Class BlaBla(Of T as String)
End Class

这不是一样的:

Class BlaBla(ByVal str as String)
End Class

顺便问一下,您是否经常在项目中使用泛型?

2 个答案:

答案 0 :(得分:6)

  

这不是一样的:

Class BlaBla(ByVal str as String)
End Class

首先,你不能写那个。所以不,它不一样。它甚至不清楚你的意思,即你期望它做什么。

关于何时使用泛型:每次你想要将一个特定的类与不同类型一起重用时,不必每次都重写它。

最好的例子是集合类,例如List(Of T)。如果你不知道它是什么:它基本上就像一个数组,只有更多的操作。您可以为不同类型创建数组:整数数组和字符串数组。您如何为自己的Array实施获得同样的效果?答案是:泛型。

答案 1 :(得分: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)