从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>());
}
}