Private Function A() As Integer Dim x = Function(c As Integer) c + 1 Return x(1) '2 Call B() '2 End Function Private Sub B() Dim x = Sub(c As Integer) Debug.Print((c + 1).ToString) End Sub
え?
こんな事、書けるの?
という代物がこのラムダ式(名前のない関数Function、Subルーチン)。
関数を変数に放り込んでいる。2008から書けるようになったらしい。
こりゃ可読性悪いな
と思うのは管理人だけなのか?
完全にVB6から変わったな~と言う印象を受けます。
しかし、
文句を言っても既に、先の「String.Aggregateを自作してみる」で使われているようだ。
MSのラムダ式解説ページ
とにかく、VB2010から、名前のない関数Function、Subルーチンがバシバシ登場し、やたら拡張メソッド内とかで使われているのではないでしょうか?
そういえば、ASP.NETのMVC4でこんなコードが出てきてたぞ・・・・・
参10 行でズバリ!! ASP.NET MVC におけるデータの取得から画面表示までの流れ (VB)
こりラムダ式は必須事項になったようだ。