gpt4 book ai didi

vb.net - VB.NET 的 lambda 语法和地址之间的区别

转载 作者:行者123 更新时间:2023-12-02 07:07:19 26 4
gpt4 key购买 nike

我最近进入了 VB.NET 的快乐世界,但是,对于我的生活,我似乎无法弄清楚为什么以下内容不起作用。

当我在这里编写这段代码时,一切都很好:

MyNavigationCommand = New RelayCommand(AddressOf Navigate)

Private Sub Navigate()
Navigator.NavigateTo(NavigationRoutes.DetailScreen)
End Sub

但是,当我尝试使用 lambda 语法执行完全相同的操作时,当我单击触发该命令的按钮时,lambda 内的代码不会被命中。

以下行不起作用:

MyNavigationCommand = New RelayCommand(Sub() Navigator.NavigateTo(NavigationRoutes.DetailScreen))

这应该与我之前的方法完全相同,不是吗?或者我错过了什么?

最佳答案

我不确定你出了什么问题。这是我为了测试这个而编写的代码:

Sub Main

Dim MyNavigationCommand = New RelayCommand(AddressOf Navigate)
Dim MyNavigationCommand2 = New RelayCommand(Sub() Console.WriteLine("!"))

Navigate
MyNavigationCommand
MyNavigationCommand2

End Sub

Public Delegate Sub RelayCommand

Public Sub Navigate()
Console.WriteLine("!")
End Sub

运行此代码时会生成三行 !

关于vb.net - VB.NET 的 lambda 语法和地址之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27398672/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com