C# (等待)任务,并非所有代码路径都返回值
Ok My employee对象具有显示在数据网格中的EmployeePayHistory列表。我有一个从datagrid获取所选行的方法,在这里我尝试实际实现该函数。然而,在DeleteEmployeePayHistories()部分,它给了我一个错误,说它是可等待的。我很想知道如何修复它,以及它为什么要这样做。提前感谢您的帮助C# (等待)任务,并非所有代码路径都返回值,c#,list,async-await,C#,List,Async Await,Ok My employee对象具有显示在数据网格中的EmployeePayHistory列表。我有一个从datagrid获取所选行的方法,在这里我尝试实际实现该函数。然而,在DeleteEmployeePayHistories()部分,它给了我一个错误,说它是可等待的。我很想知道如何修复它,以及它为什么要这样做。提前感谢您的帮助 private Task DeleteEmployeePayHistories() { Employee.Employe
private Task DeleteEmployeePayHistories()
{
Employee.EmployeePayHistories.Remove(SelectedPayHistory);
SelectedPayHistory = null;
}
您的方法返回一个
任务
,如果您不希望它是可等待的且不返回任何内容,请将返回类型更改为void
private void DeleteEmployeePayHistories()
您的方法返回一个
任务
,如果您不希望它是可等待的且不返回任何内容,请将返回类型更改为void
private void DeleteEmployeePayHistories()
您的方法应该返回
任务
(可能是Task.CompletedTask
),或者使用async
关键字和wait
某个内容
private Task DeleteEmployeePayHistories()
{
Employee.EmployeePayHistories.Remove(SelectedPayHistory);
SelectedPayHistory = null;
return Task.CompletedTask;
}
或
最后,如果您不需要异步代码,您可以使您的方法void
private void DeleteEmployeePayHistories()
{
Employee.EmployeePayHistories.Remove(SelectedPayHistory);
SelectedPayHistory = null;
}
您的方法应该返回
任务
(可能是Task.CompletedTask
),或者使用async
关键字和wait
某个内容
private Task DeleteEmployeePayHistories()
{
Employee.EmployeePayHistories.Remove(SelectedPayHistory);
SelectedPayHistory = null;
return Task.CompletedTask;
}
或
最后,如果您不需要异步代码,您可以使您的方法void
private void DeleteEmployeePayHistories()
{
Employee.EmployeePayHistories.Remove(SelectedPayHistory);
SelectedPayHistory = null;
}
好的,如果我在按下按钮时调用我的DeleteEmployeePayHistories方法,这是否意味着我需要返回任务?@brock不是按钮意味着它需要返回任务,而是您使该方法的返回类型为
task
。好的,所以我不尝试返回任何内容,我只是想从EmployeePayHistories列表中删除SelectedPayHistory。我和一个朋友一起做这个项目,他说我们不想在早些时候使用async,但他现在上床睡觉了,所以我不知道为什么。我想你只是想在这个答案中使用void
-第三个选项。@brock我只是想从列表中删除selectedPayHistory,你正在返回命令。如果您必须异步访问它。参见Jamiec的第二个示例。我将添加wait Task.Run(()=>{/*code*/})
Ok如果我在按下按钮时调用DeleteEmployeePayHistories方法,这是否意味着我需要返回任务?@brock不是按钮意味着它需要返回任务,而是您使该方法的返回类型为task
。Ok,所以我不尝试返回任何内容,我只是想从EmployeePayHistories列表中删除SelectedPayHistory。我和一个朋友一起做这个项目,他说我们不想在早些时候使用async,但他现在上床睡觉了,所以我不知道为什么。我想你只是想在这个答案中使用void
-第三个选项。@brock我只是想从列表中删除selectedPayHistory,你正在返回命令。如果您必须异步访问它。参见Jamiec的第二个示例。我将添加wait Task.Run(()=>{/*code*/})代码>