在 C# 中
(new Action(() => MessageBox.Show("Hello"))).BeginInvoke(null, null);
在 VB 中,翻译后的代码无法编译
(New Action(Sub() MessageBox.Show("Hello"))).BeginInvoke(nothing, nothing)
但是在 VB 中,我可以将 BeginInvoke 的结果设置为隐式变量a
,它会运行(感谢@Ric 在另一篇文章中的建议)
Dim a = (New Action(Sub() MessageBox.Show("Hello"))).BeginInvoke(Nothing, Nothing)
但现在我想知道为什么 VB 在这种情况下需要在左侧设置一些东西,而 C# 不需要。