我不明白为什么这样写:
Class BlaBla(Of T as String)
End Class
这不是一样的:
Class BlaBla(ByVal str as String)
End Class
顺便问一下,您是否经常在项目中使用泛型?
答案 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)