lambda - @onclick="(() => SomeMethod(参数))"
问题描述
我正在研究 Blazor,我偶然发现了这个表达式:
@onclick="(() => SomeMethod(parameter))"
我无法在任何地方找到/谷歌这个(我猜是 lambda)表达式实际上在做什么。谁能解释一下这部分:() =>
以及为什么要使用它以及在哪里使用它?
编辑:
上面和这个有什么区别:
@onclick="SomeMethod(parameter)"
解决方案
使用此模式:
<input type="button" value="Click me" @onclick="@(() => SomeMethod("my string"))" />
当你想调用一个方法并传递一个参数时。在幕后,编译器创建了一个 EventCallback 结构,该结构提供了适当的委托类型,该类型封装了具有单个参数并返回 void 的方法
当您要调用没有参数的方法时,请使用此模式:
<input type="button" value="Click me" @onclick="@(SomeMethod1)" />
(not recommended, embedded in a Razor expression)
或者干脆使用最常见的用法:
<input type="button" value="Click me" @onclick="@SomeMethod1" />
这也是可能的:
<input type="button" value="Click me" @onclick="SomeMethod1" />
(@符号在这里不再是必需的,但您可能会看到大多数开发人员使用它;出于习惯,因为这在过去是必需的)
希望这可以帮助...
推荐阅读
- multithreading - 启动由信号量管理的多个线程
- python - 如何在 Selenium Python 中使用 WebDriverWait 触发可点击元素后从弹出窗口中检索数据?
- javascript - 将项目从函数推送到数组中
- c++ - 带有模板作为返回类型的 Trompeloeil MAKE_MOCK0
- javascript - 使用 Chrome,window.open() 操作取决于 shift 键
- scala - 如何在akka http的路由标头中对OAuth2BearerToken进行单元测试
- javascript - .data() 处的 D3 新数据使 svg 重绘而不是更新节点位置
- javascript - toFixed(2) 函数中的 Javascript 错误?
- javascript - 如果表中的行数是 Javascript/jQuery 的某个数字,如何添加一个类
- oauth-2.0 - Oauth2 Strava 请求失败“错误请求”