gpt4 book ai didi

c# - 匿名方法 - 3 种不同的方式 - 异步

转载 作者:行者123 更新时间:2023-12-04 02:08:20 28 4
gpt4 key购买 nike

不确定在标题中写什么,它们可能不都是匿名方法,但这里是:

假设我们有这个异步函数:

public async Task Delete(){  
//something
}

我正在使用 Blazor 服务器端,我对以下四种调用函数的方式感到好奇。假设它们在 div 标签内。

  1. onclick="@Delete"

  2. onclick="@(() => Delete(id))"

  3. onclick="@(async () => await Delete(id))"

  4. onclick="@(e => Delete(person.Id))

我不确定 1 是否是 Blazor 的新手,但它是否理解该方法是异步的?

如果需要传入参数,将使用 2 和 3,但我之前从未使用过异步部分,仅在较旧的帖子中看到。还需要说 "async() =>" 吗?

最佳答案

在 Blazor 的早期版本中,您需要使用选项 3,因为 async不支持函数。如果您错过了 await Blazor 无法知道该方法已完成,因此您需要手动调用 StateHasChanged因此可以根据需要重新渲染组件。

但是,现在 Blazor 确实支持异步方法,因此您可以坚持使用选项 1,但需要注意的是您需要该方法返回 Task而不是 void .

所以你需要这样的东西:

public async Task Delete(){  
//something
}

在 Blazor 中:

onclick="@Delete"

关于c# - 匿名方法 - 3 种不同的方式 - 异步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60487996/

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