Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从C#(Xamarin)中的接口异步ObservableCollection_C#_Xamarin_Interface - Fatal编程技术网

从C#(Xamarin)中的接口异步ObservableCollection

从C#(Xamarin)中的接口异步ObservableCollection,c#,xamarin,interface,C#,Xamarin,Interface,我在一个接口中有一个observateCollection,我将它与一个RestApi请求一起使用。它有一些等待函数,必须是异步的。但是有一个错误 以下是界面: public interface IDbConnection { ObservableCollection<Einkauf> GetEinkauf(); } 有人知道怎么解决这个问题吗 公共接口连接 public interface IDbConnection { Task<ObservableCol

我在一个接口中有一个
observateCollection
,我将它与一个
RestApi请求一起使用。它有一些等待函数,必须是异步的。但是有一个错误

以下是界面:

public interface IDbConnection
{
    ObservableCollection<Einkauf> GetEinkauf();
}
有人知道怎么解决这个问题吗

公共接口连接
public interface IDbConnection
{
    Task<ObservableCollection<Einkauf>> GetEinkauf();
}

public async Task<ObservableCollection<Einkauf>> GetEinkauf()
{
  ...
}
{ 任务GetEinkauf(); } 公共异步任务GetEinkauf() { ... }
公共接口连接
{
任务GetEinkauf();
}
公共异步任务GetEinkauf()
{
...
}

如果
GetEinkauf
应作为异步方法实现,则应将其返回类型更改为
Task
,并将其名称更改为GetEinkaufAsync,以遵循异步方法的命名约定:

public interface IDbConnection
{
    Task<ObservableCollection<Einkauf>> GetEinkaufAsync();
}

public async Task<ObservableCollection<Einkauf>> GetEinkaufAsync()
{
    var content = await _client.GetStringAsync(Url);
    var einkauf = JsonConvert.DeserializeObject<List<Einkauf>>(content);
    _einkauf = new ObservableCollection<Einkauf>(einkauf);
    speisenListe.ItemsSource = _einkauf;
    return _einkauf;
}
如果另一个类出于某种原因以同步方式实现了
IDbConnection
接口,那么它可以使用
Task.FromResult
方法返回
Task

public类SomeOtherClass:IDbConnection
{
公共任务GetEinkaufAsync()
{
返回Task.FromResult(新的ObservableCollection());
}
}

如果
GetEinkauf
应作为异步方法实现,则应将其返回类型更改为
Task
,并将其名称更改为GetEinkaufAsync,以遵循异步方法的命名约定:

public interface IDbConnection
{
    Task<ObservableCollection<Einkauf>> GetEinkaufAsync();
}

public async Task<ObservableCollection<Einkauf>> GetEinkaufAsync()
{
    var content = await _client.GetStringAsync(Url);
    var einkauf = JsonConvert.DeserializeObject<List<Einkauf>>(content);
    _einkauf = new ObservableCollection<Einkauf>(einkauf);
    speisenListe.ItemsSource = _einkauf;
    return _einkauf;
}
如果另一个类出于某种原因以同步方式实现了
IDbConnection
接口,那么它可以使用
Task.FromResult
方法返回
Task

public类SomeOtherClass:IDbConnection
{
公共任务GetEinkaufAsync()
{
返回Task.FromResult(新的ObservableCollection());
}
}

缺少一件事:返回'wait'任务。FromResult(\u einkauf);缺少一件事:返回'wait'任务;
public interface IDbConnection
{
    Task<ObservableCollection<Einkauf>> GetEinkaufAsync();
}

public async Task<ObservableCollection<Einkauf>> GetEinkaufAsync()
{
    var content = await _client.GetStringAsync(Url);
    var einkauf = JsonConvert.DeserializeObject<List<Einkauf>>(content);
    _einkauf = new ObservableCollection<Einkauf>(einkauf);
    speisenListe.ItemsSource = _einkauf;
    return _einkauf;
}
var collection = await GetEinkaufAsync();
public class SomeOtherClass : IDbConnection
{
    public Task<ObservableCollection<Einkauf>> GetEinkaufAsync()
    {
        return Task.FromResult(new ObservableCollection<Einkauf>());
    }
}