请看下面的代码。
Dim results As IEnumerable(Of Customer) = ExecuteDataReader( _
"SELECT * FROM Customer WHERE Sales> @MinSales", _
Sub(p) p.Add("@MinSales", SqlDbType.Double).Value = 10000.0, _
Function(r) New Customer() With {Name=r("Name"), Address=r("Address"), Sales=r("Sales") })
For Each c As Customer in results
'...
Next
在我发布的上一个问题中,回答者发布了此代码。我不明白代码的一部分sub(p)
或function(r)
部分。
不幸的是,我没有根据来寻找答案。因此,我在完成有限的研究后发布了这个问题。
sub(p)
和是什么意思function(r)
?
更新 14:54
请看下文。是什么意思:(Of T)
和ByVal castRow As Function(Of IDataRecord, T)
?
Public Iterator Function ExecuteDataReader(Of T)(ByVal sql As String,
ByVal addParams as Action(Of SqlParameterCollection), ByVal castRow As
Funnction(Of IDataRecord, T)) As IEnumerable(Of T)