我对这个概念相当陌生。函数(Of T)(ByVal x为Integer)究竟是什么意思?
我看到有一些代码中的一些功能:
Public Function GetDataObjects(Of Customer)(ByVal dataset as DataSet)
...
End Function
究竟(的客户)做什么在这种情况下还是什么意思?
我对这个概念相当陌生。函数(Of T)(ByVal x为Integer)究竟是什么意思?
我看到有一些代码中的一些功能:
Public Function GetDataObjects(Of Customer)(ByVal dataset as DataSet)
...
End Function
究竟(的客户)做什么在这种情况下还是什么意思?
不定义看起来相当喜欢:
Public Function GetDataObjects(Of T)(ByVal dataset as DataSet) as IList<T>
...
End Function
然后你使用它像
IList(Of Customer) customers = GetDataObjects(Of Customer)(someDataSet)
如果是这样,客户提供了一个真正的类型来代替操作中使用T,其中在GetDataObjects函数
没有看到返回值的函数部分,它似乎意味着函数的返回类型是Customer。
你所看到的是VB.NET处理泛型的方法之一。
约翰
(我可能是错的。因为我做了VB.NET工作,它已经有一段时间。)
编辑
这是不是返回类型。 (对于混淆,抱歉)。它仅仅为函数提供了“客户”应该被视为特定类型的信息。客户成为定义类型的“参数”。它可以是Integer,String,Object,Decimal或任何其他类型。 (这是所有基本的泛型。)
推测,函数使用这种类型,但签名不显示使用。 (一种猜测是,这种类型被临时标注为“客户”,用于确定数据集中应该包含哪些列或如何使用这些列)。
这意味着此方法是通用的。它有一个名为Customer
的单一通用参数,没有限制。
你能为GetDataObjects方法提供更多的代码,所以我们可以添加更好的解释吗?
因此,这只是一种显示与“As Customer”不同的返回类型的方法吗? – jlrolin 2010-02-24 19:29:46
@ jlrolin - no。你的代码是否真的编译? – user76035 2010-02-24 19:31:40
是的,但我正在看,它绝对不是回报。现在我正在查看VB.net的一些泛型示例...也许我会更好地理解。 – jlrolin 2010-02-24 19:32:57