代码之家  ›  专栏  ›  技术社区  ›  pixel

任务。结果为空[重复]

  •  -1
  • pixel  · 技术社区  · 7 年前

    这个问题已经有了答案:

    我有以下方法,最终会返回一些 Task<IList<DataModel>> 但现在就回来吧 null . 我想将此列表的结果加载到我的ViewModel中的ObservableCollection,然后将其显示在ListView中。

    但现在,我只想返回空值并检查是否处理正确,因此我的ListView不应该显示任何结果。我用下面的代码来模拟:

    public async Task<IList<DatatModel>> GetData(string id)
    {
        return await Task.FromResult<IList<DataModel>>(null);
    }
    

    我调用上面的代码,并将循环遍历任务的结果,并将其全部加载到我的ObservableCollection中,如下所示:

    public void Initialize()
    {
        foreach (var data in GetData(Id).Result)
        {
            MyObservableCollection.Add(data);
        }
    }
    

    但是,我的应用程序只是冻结了。我认为上面对getdata(id).result的调用有问题,因为result为空。如果存在某些数据,我如何循环这些数据并将其加载到我的ObservableCollection中?如果没有返回数据,我如何简单地不加载任何数据?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Wayne Allen    7 年前

    而不是返回 null ,返回空 List<DataModel> . 这样,你的 Result 将始终填充属性。因此,getdata方法将变为:

    public async Task<IList<DatatModel>> GetData(string id)
    {
        return await Task.FromResult<IList<DataModel>>(new List<DataModel>());
    }