1

以下のコードを見てください。

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)
4

1 に答える 1

1

ラムダ式:

ラムダ式は、デリゲートが有効な場所であればどこでも使用できる、名前のない関数またはサブルーチンです。ラムダ式は、関数またはサブルーチンにすることができ、単一行または複数行にすることができます。現在のスコープからラムダ式に値を渡すことができます。

Dim increment1 = Function(x) x + 1
Dim increment2 = Function(x)
                     Return x + 2
                 End Function 
于 2012-11-17T13:31:55.160 に答える