VB.NET中泛型的用途是什么?

VB.NET中泛型的用途是什么?,.net,vb.net,generics,.net,Vb.net,Generics,我不明白为什么要这样写: Class BlaBla(Of T as String) End Class 不就是这样吗: Class BlaBla(ByVal str as String) End Class Class BlaBla(ByVal str as String) End Class 顺便问一下,您在项目中是否经常使用泛型 不就是这样吗: Class BlaBla(ByVal str as String) End Class Class BlaBla(ByVal str as

我不明白为什么要这样写:

Class BlaBla(Of T as String)
End Class
不就是这样吗:

Class BlaBla(ByVal str as String)
End Class
Class BlaBla(ByVal str as String)
End Class
顺便问一下,您在项目中是否经常使用泛型

不就是这样吗:

Class BlaBla(ByVal str as String)
End Class
Class BlaBla(ByVal str as String)
End Class
首先,你不能写那个。所以不,不一样。甚至不清楚你说的是什么意思,也就是说,你期望它做什么

至于何时使用泛型:每次您希望将一个特定类与不同类型结合使用时,无需每次都重写它


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

我认为您混淆了声明和用法

正确的声明应该是:

Public Class Foo(Of T)
什么是T-嗯,它几乎可以是你喜欢的任何东西。它是一种通用类型:

所以你可以用一个字符串:

Dim bar as Foo(Of String)
可以使用整数

Dim bar as Foo(Of Integer)
您可以使用一个类:

Dim bar as Foo(of MyClassThatICreated)

+1至于何时使用泛型:每次你想将一个特定的类与不同的类型一起重用,而不必每次都重写它。我不好,我真的想编写子类,但我想答案是一样的。