3 回答
TA贡献1818条经验 获得超3个赞
方法中不能包含ref或out参数async(如前所述)。
这为周围的数据建模带来了尖叫:
public class Data
{
public int Op {get; set;}
public int Result {get; set;}
}
public async void Method1()
{
Data data = await GetDataTaskAsync();
// use data.Op and data.Result from here on
}
public async Task<Data> GetDataTaskAsync()
{
var returnValue = new Data();
// Fill up returnValue
return returnValue;
}
您可以更轻松地重用代码,并且比变量或元组更具可读性。
TA贡献1911条经验 获得超7个赞
Alex强调可读性。同样,一个函数的接口也足以定义要返回的类型,并且您还将获得有意义的变量名。
delegate void OpDelegate(int op);
Task<bool> GetDataTaskAsync(OpDelegate callback)
{
bool canGetData = true;
if (canGetData) callback(5);
return Task.FromResult(canGetData);
}
调用者提供一个lambda(或命名函数),并且intellisense通过从委托中复制变量名称来提供帮助。
int myOp;
bool result = await GetDataTaskAsync(op => myOp = op);
此特定方法类似于“尝试”方法,myOp如果方法结果为,则在其中设置true。否则,您将不在乎myOp。
- 3 回答
- 0 关注
- 560 浏览
添加回答
举报