【问题标题】:Async Await Return Task Null .Net Core异步等待返回任务 Null .Net Core
【发布时间】:2023-03-24 04:48:01
【问题描述】:

我有这样的方法:

public async Task<Response> HandleRequest(string connectionId, Request request)
{
  if (request is AuthorizeRequest)
  {
    return await _handler.HandleRequest(connectionId, request as AuthorizeRequest);
  }

  if (request is ChangeConfigurationRequest)
  {
    return await _handler.HandleRequest(connectionId, request as ChangeConfigurationRequest);
  }

  return await Task.FromResult<Response>(null);  //My question is here
}

我的问题是:我应该返回 return await Task.FromResult(null);或返回null; 因为如果请求不是'AuthorizeRequest'和'ChangeConfigurationRequest'

感谢大家的帮助

【问题讨论】:

    标签: asp.net-core async-await


    【解决方案1】:

    由于你的方法被标记为async,你应该返回null

    【讨论】:

    • Tks Peres,我从很多资源中搜索,它说我们不应该在 Task 中返回 null。对吗?
    • 我的方法怎么样:``` public Task HandleRequest(string connectionId, Request request) { return Task.FromResult(null); }```
    • 是的,这是正确的,IMO,没有 async 修饰符。
    【解决方案2】:

    我从很多资源中搜索,它说我们不应该在 Task 中返回 null。对吗?

    返回任务的方法永远不应返回null 任务。但是,您要做的是返回一个(非null)任务,其中包含null 的结果值。没关系;这与返回 null 任务完全不同。

    对于您的原始代码,请使用return null;。永远不要使用await Task.FromResult(...)

    【讨论】:

      猜你喜欢
      • 2014-10-01
      • 1970-01-01
      • 2016-10-14
      • 1970-01-01
      • 2012-08-22
      • 2014-03-18
      • 1970-01-01
      相关资源
      最近更新 更多