C#到VB:Class.Event + =(sender,args)=>使用functionName(PARAMS)

时间:2011-04-06 12:56:03

标签: c# vb.net event-handling c#-to-vb.net

我正在尝试将C#代码从this webpage转换为VB。

使用在线转换工具,似乎所有东西都转换得非常好,但随后我到达以下一行:

fadeOutAnimation.Completed += (sender, args) => OnFadeOutAnimationCompleted(d, hostGrid, grid);

fadeOutAnimation.Completed事件产生一个带签名的事件(sender,args),而d,hostGrid和grid是包含这个神秘事件处理程序赋值的函数的本地变量。

我想我可以看到这个C#行上的指令告诉代码执行OnFadeOutAnimationCompleted函数,使用d,hostgrid和grid作为参数,当fadeoutAnimation.Completed发生时,但我不知道甚至搜索什么为了在VB.net中复制这种行为。

有人可以为我提供一些术语,以便我可以更好地教育自己所谓的任何内容吗?

3 个答案:

答案 0 :(得分:3)

AddHandler fadeOutAnimation.Completed, Sub() 
    OnFadeOutAnimationCompleted(d, hostGrid, grid)
End Sub

已经有一段时间了,但由于你没有使用事件处理程序中的参数,我认为你不需要包含它们(因为轻松的代理转换)。如果是这样,它看起来更像是:

AddHandler fadeOutAnimation.Completed, Sub(sender as object, args as EventArgs) 
    OnFadeOutAnimationCompleted(d, hostGrid, grid)
End Sub

答案 1 :(得分:1)

这是一个lambda表达式。让我看看如何在VB中执行此操作...

AddHandler fadeOutAnimation.Completed, Sub(sender, e) _
(OnFadeOutAnimationCompleted(d, hostGrid, grid))

答案 2 :(得分:1)

你必须寻找的关键词是“lambda表达”。