Twitter 不通过其 REST API 提供用户生日。因此,我准备了一个可为 null 的 DateTime 属性。
我还为所有社交网络服务准备了一个接口(interface)。其中大部分是异步任务方法。
但我无法传递此错误:对象引用未设置为对象的实例,即使我没有使用该对象。
接口(interface)方法 GetUserBirthDayAsync 为 Twitter 服务实现如下:
public Task<DateTime?> GetUserBirthDayAsync(){
return null; // because twitter does not provide user birthday
}
这就是我使用该方法的方式:
DateTime? BirthDate = await socialNetworkService.GetUserBirthDayAsync();
将值设置为 BirthDate 变量时发生错误。
发生了什么事?是什么导致了异常?
最佳答案
试试这个:
public Task<DateTime?> GetUserBirthDayAsync()
{
return Task.Run(() => (DateTime?)null);
}
或者,更好的方法:
public Task<DateTime?> GetUserBirthDayAsync()
{
return Task.FromResult<DateTime?>(null);
}
当您只返回 null
时,这意味着您的任务是 null
,而不是异步方法的结果。
关于c# - 调用异步方法时对象引用未设置到对象的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38011951/