VB10でサポートされる複数行ラムダ
青柳 臣一 ブログ(趣味系) [VB10] Visual Basic 2010 の新機能
Lambda Expressions (Visual Basic) | Microsoft Docs
これまでVisual Basicのラムダでは式形式での記述だけが可能であり、複数行記述するようなステートメント型はサポートされていませんでした。
ラムダ式
関数の本体は、ステートメントではなく式である必要があります。本体を関数プロシージャへの呼び出しで構成することはできますが、サブ プロシージャへの呼び出しは指定できません。
VB10では、これが下記のような構文でサポートされます。
Visual Basic
Dim message As String = "メッセージ:"
AddHandler Button1.Click, Sub()
message += "ステートメント型ラムダが可能になりました。"
MessageBox.Show(message)
End Sub
AddHandler Button1.Click, Sub()
message += "ステートメント型ラムダが可能になりました。"
MessageBox.Show(message)
End Sub
SubとEnd Subの分だけちょっと長くはなりますが、「これがVBで書けたら…」と思っていた人は多いのではないでしょうか。
他にも「自動実装するプロパティ」、「コレクション初期化子」などもサポートされていますので、これでC#とほぼ同じことができる?ようになるでしょうか。