我需要帮助将c#匿名方法转换为vb.net

时间:2011-03-11 23:24:14

标签: c# vb.net silverlight

provider.OptionsSet += delegate
{
  provider.FinishedLoading();
};

3 个答案:

答案 0 :(得分:4)

很好地演示了转换器如何使这个显着错误,他们已经有很长一段时间了。 + =运算符不是VB.NET语法,订阅事件需要AddHandler。 Do 来自哪里是任何人的猜测。 lambda不能是Function,除了委托类型返回值的极少数情况。在一行中有三个错误,你没有机会。你需要VS2010写一个Sub lambda。像这样:

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

对于早期版本,您需要一些非匿名帮助方法。像这样:

    AddHandler obj.example, AddressOf helper
...
Sub helper(ByVal sender As Object, ByVal e As EventArgs)
    '' etc..
End Sub

人类1,机器0。

答案 1 :(得分:0)

Pete Brown也有一​​个内联子的例子:

http://10rem.net/blog/2010/04/16/tip-anonymous-event-handlers-in-vbnet

答案 2 :(得分:-2)

provider.OptionsSet += Function() Do
    provider.FinishedLoading() 
End Function 

这取自http://www.developerfusion.com/tools/convert/csharp-to-vb/,所以我没有测试过。如果您能够提供更多上下文,那可能会更有帮助。这是用来做什么的?