Reputation: 21
provider.OptionsSet += delegate
{
provider.FinishedLoading();
};
Upvotes: 2
Views: 655
Reputation: 1
Pete Brown has also has an example with inline sub:
http://10rem.net/blog/2010/04/16/tip-anonymous-event-handlers-in-vbnet
Upvotes: 0
Reputation: 941257
Nice demonstration how converters get this dramatically wrong, they have for a long time. The += operator isn't VB.NET syntax, AddHandler is required to subscribe events. Where the Do comes from is anybody's guess. The lambda can't be a Function, except for the very rare cases where the delegate type returns a value. Three bugs in one line, you don't stand a chance. You need VS2010 to write a Sub lambda. Like this:
Module Module1
Sub Main()
Dim obj As New Test
AddHandler obj.example, Sub(sender As Object, e As EventArgs)
'' etc...
End Sub
End Sub
End Module
Class Test
Public Event example As EventHandler
End Class
For earlier versions, you'll need a little non-anonymous helper method. Like this:
AddHandler obj.example, AddressOf helper
...
Sub helper(ByVal sender As Object, ByVal e As EventArgs)
'' etc..
End Sub
Human 1, machine 0.
Upvotes: 4
Reputation: 13
provider.OptionsSet += Function() Do
provider.FinishedLoading()
End Function
This is taken from http://www.developerfusion.com/tools/convert/csharp-to-vb/, so I haven't tested it. It might be more helpful if you were able to provide more context. What is this being used for?
Upvotes: -2