(等待)任务,并非所有代码路径都返回一个值

bro*_*ck 1 c# list async-await

确定我的员工对象有一个EmployeePayHistories列表,它显示在数据网格中.我有一个方法从数据网格中获取所选行,在这里我试图实际实现该函数.但是在DeleteEmployeePayHistories()部分,它给我一个错误说它等待.我很想知道如何解决它,以及为什么要这样做.在此先感谢您的帮助.

    private Task DeleteEmployeePayHistories()
        {
           Employee.EmployeePayHistories.Remove(SelectedPayHistory);
           SelectedPayHistory = null;
        }
Run Code Online (Sandbox Code Playgroud)

Jam*_*iec 5

您的方法应该返回Task(可能Task.CompletedTask)或使用async关键字等await.

private Task DeleteEmployeePayHistories()
{
    Employee.EmployeePayHistories.Remove(SelectedPayHistory);
    SelectedPayHistory = null;
    return Task.CompletedTask;
}
Run Code Online (Sandbox Code Playgroud)

要么

private async Task DeleteEmployeePayHistories()
{
    // something in here should use await or you'll get another warning
    Employee.EmployeePayHistories.Remove(SelectedPayHistory);
    SelectedPayHistory = null;
}
Run Code Online (Sandbox Code Playgroud)

最后,如果您不需要异步代码,则可以创建方法 void

private void DeleteEmployeePayHistories()
{
    Employee.EmployeePayHistories.Remove(SelectedPayHistory);
    SelectedPayHistory = null;
}
Run Code Online (Sandbox Code Playgroud)