C# 为什么删除async/await会导致Task到Task的转换错误
我有以下通用和非通用方法: 公共异步任务LoadAsyncGuid id { return wait_someService.SomeMethodAsyncid; } 异步任务LoadObjectAsyncGuid=>Wait LoadAsyncid; 为了遵循这一点,我认为可以通过从LoadObjectAsync方法中删除async/await使代码更加高效,因为它是一个passthrough。但是,当我将签名更改为: 任务LoadObjectAsyncGuid=>LoadAsyncid; 我得到一个错误,说我不能隐式地从一个任务转换到另一个任务。我想知道的是async Wait如何避免这种转换问题?我知道通用差异禁止任务转换,但为什么这不适用于异步/等待版本 试图听从斯蒂芬·克利里的建议 那篇文章中的建议是将async/wait保留在那里,除非您需要删除它。在本例中,该方法看起来像一个passthrough,但实际上正在执行隐式转换 我想知道的是为什么AsyncWait避免了这个转换问题 使用async和await,代码将T强制转换为对象,这是始终允许的 如果没有async和await,代码将强制转换任务到任务,这是不允许的。这是因为类不能支持,并且没有ITask类型 试图听从斯蒂芬·克利里的建议 那篇文章中的建议是将async/wait保留在那里,除非您需要删除它。在本例中,该方法看起来像一个passthrough,但实际上正在执行隐式转换 我想知道的是为什么AsyncWait避免了这个转换问题 使用async和await,代码将T强制转换为对象,这是始终允许的C# 为什么删除async/await会导致Task到Task的转换错误,c#,asynchronous,async-await,C#,Asynchronous,Async Await,我有以下通用和非通用方法: 公共异步任务LoadAsyncGuid id { return wait_someService.SomeMethodAsyncid; } 异步任务LoadObjectAsyncGuid=>Wait LoadAsyncid; 为了遵循这一点,我认为可以通过从LoadObjectAsync方法中删除async/await使代码更加高效,因为它是一个passthrough。但是,当我将签名更改为: 任务LoadObjectAsyncGuid=>LoadAsyncid; 我
如果没有async和await,代码将强制转换任务到任务,这是不允许的。这是因为类不能支持,并且没有ITask类型。它们都是泛型的。它们都是泛型的。