我正在尝试将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中复制这种行为。
有人可以为我提供一些术语,以便我可以更好地教育自己所谓的任何内容吗?
答案 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表达”。